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 !