Ich habe eine foreach-Schleife und eine if-Anweisung. Wenn eine Übereinstimmung gefunden wird, muss ich letztendlich aus dem Foreach ausbrechen.
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>
}
}
php
if-statement
foreach
break
au_stan
quelle
quelle
Antworten:
if
ist keine Schleifenstruktur, daher können Sie nicht "ausbrechen".Sie können jedoch ausbrechen,
foreach
indem Sie einfach anrufenbreak
. In Ihrem Beispiel hat es den gewünschten Effekt:Nur der Vollständigkeit halber für andere, die über diese Frage stolpern und nach einer Antwort suchen.
break
nimmt ein optionales Argument, das definiert, wie viele Schleifenstrukturen es brechen soll. Beispiel:Resultierende Ausgabe:
quelle
switch($a) { case 'x': switch($b) { case 'x': break 2; }; break; }
die innerenbreak 2
Blätter schreiben beide switch Anweisungen.Einfach benutzen
break
. Das wird es tun.quelle
if ($abort_if_block) break;
ich ursprünglich gemacht hatte,break 2
und sie schlug fehl. dankeEin sicherer Weg, um eine
foreach
oder-while
Schleife in PHP zu unterbrechen, besteht darin, eine inkrementierende Zählervariable und eineif
Bedingung innerhalb der ursprünglichen Schleife zu verschachteln . Dies gibt Ihnen eine strengere Kontrolle, alsbreak;
dies an anderer Stelle auf einer komplizierten Seite zu Chaos führen kann.Beispiel:
quelle
endwhile
Anweisung verwenden möchten , müssen Sie schreibenwhile (..): ...; endwhile;
- notieren Sie den Doppelpunkt hier nachwhile
!Für diejenigen unter Ihnen, die hier landen, aber suchen, wie sie aus einer Schleife ausbrechen können, die eine include-Anweisung enthält, verwenden Sie return anstelle von break oder continue.
Wenn Sie in do_this_for_even.php brechen möchten, müssen Sie return verwenden. Wenn Sie break oder continue verwenden, wird der folgende Fehler zurückgegeben: 1 Ebene kann nicht unterbrochen / fortgesetzt werden. Ich habe hier mehr Details gefunden
quelle