ifとforeachから抜け出す 質問する

ifとforeachから抜け出す 質問する

foreach ループと if ステートメントがあります。一致が見つかった場合は、最終的に foreach から抜け出す必要があります。

foreach ($equipxml as $equip) {

    $current_device = $equip->xpath("name");
    if ($current_device[0] == $device) {

        // Found a match in the file.
        $nodeid = $equip->id;

        <break out of if and foreach here>
    }
}

ベストアンサー1

ifループ構造ではないので、「抜け出す」ことはできません。

foreachしかし、電話するだけで抜け出すことができますbreakあなたの例では、望ましい効果が得られます:

$device = "wanted";
foreach($equipxml as $equip) {
    $current_device = $equip->xpath("name");
    if ( $current_device[0] == $device ) {
        // found a match in the file            
        $nodeid = $equip->id;

        // will leave the foreach loop immediately and also the if statement
        break;
        some_function(); // never reached!
    }
    another_function();  // not executed after match/break
}

答えを探してこの質問に偶然出会った他の人のために、完全性を期すためです。

breakオプションの引数を取り、ループ構造をいくつ分割するかを定義します。例:

foreach (['1','2','3'] as $a) {
    echo "$a ";
    foreach (['3','2','1'] as $b) {
        echo "$b ";
        if ($a == $b) { 
            break 2;  // this will break both foreach loops
        }
    }
    echo ". ";  // never reached!
}
echo "!";

結果の出力:

1 3 2 1 !

おすすめ記事