0

現在、URL をさまざまな部分に分解し、それらの部分を定義済みの文字列と照合することで URL を検証する関数を作成しています。これは私がこれまでに使用している機能です:

function validTnet($tnet_url) {
    $tnet_2 = "defined2";
    $tnet_3 = "defined3";
    $tnet_5 = "defined5";
    $tnet_7 = "";

    if($exp_url[2] == $tnet_2) {
        #show true, proceed to next validation

        if($exp_url[3] == $tnet_3) {
        #true, and next

                if($exp_url[5] == $tnet_5) {
                #true, and last

                        if($exp_url[7] == $tnet_7) {
                        #true, valid
                        }
                }
            }
    } else {
        echo "failed on tnet_2";
    }
}

何らかの理由で、ネストされた if ステートメントから抜け出す方法をコーディングする (または適切な用語を検索する) 方法を考えることができません。

やりたいこと から始まる URL の各部分をチェックし$tnet_2、チェック ( $tnet_2$tnet_3$tnet_5または$tnet_7) のいずれかに失敗した場合は、失敗したことを出力し、if ステートメントから抜け出します。私がすでに持っているコードのいくつかを使用してこれを達成する簡単な方法はありますか?

4

2 に答える 2

1
$is_valid = true;

foreach (array(2, 3, 5, 7) as $i) {
    if ($exp_url[$i] !== ${'tnet_'.$i}) {
        $is_valid = false;
        break;   
    }
}

$tnet[$i]これらの値を配列で定義すると、次のことができます。

$tnet = array(
  2 => "defined2",
  3 => "defined3",
  5 => "defined5",
  7 => ""
);
于 2012-10-06T03:34:45.763 に答える
1

ifすべての条件を組み合わせる

if(
   $exp_url[2] == $tnet_2 && 
   $exp_url[3] == $tnet_3 && 
   $exp_url[5] == $tnet_5 && 
   $exp_url[7] == $tnet_7
) {
  //true, valid
} else {
  echo "failed on tnet_2";
}
于 2012-10-06T04:33:05.043 に答える