Ich habe eine Schleife, die Fehler in meinem PHP-Code überprüft. Ursprünglich sah es ungefähr so aus ...
foreach($results as $result) {
if (!$condition) {
$halt = true;
ErrorHandler::addErrorToStack('Unexpected result.');
}
doSomething();
}
if (!$halt) {
// do what I want cos I know there was no error
}
Das funktioniert alles gut und schön, aber es wird immer noch durchlaufen, obwohl es nach einem Fehler nicht nötig ist. Gibt es eine Möglichkeit, der Schleife zu entkommen?
Wie in anderen Beiträgen angegeben, können Sie das Schlüsselwort break verwenden. Eine Sache, die angedeutet, aber nicht erklärt wurde, ist, dass das Schlüsselwort einen numerischen Wert annehmen kann, um PHP mitzuteilen, von wie vielen Ebenen abgehoben werden soll.
Wenn Sie beispielsweise drei ineinander verschachtelte foreach-Schleifen haben, um eine Information zu finden, können Sie 'break 3' ausführen, um aus allen drei verschachtelten Schleifen herauszukommen. Dies funktioniert für die Strukturen 'for', 'foreach', 'while', 'do-while' oder 'switch'.
quelle
break;
verlässt deine Schleife.continue;
Überspringt einen beliebigen Code für den Rest dieser Schleife und fährt mit der nächsten Schleife fort, solange die Bedingung noch erfüllt ist.quelle
Sie können das Schlüsselwort break verwenden .
quelle
All dies sind gute Antworten, aber ich möchte noch eine vorschlagen, die meiner Meinung nach ein besserer Codestandard ist. Sie können ein Flag in der Schleifenbedingung verwenden, das angibt, ob die Schleife fortgesetzt werden soll oder nicht, und vermeiden,
break
alle zusammen zu verwenden.Ich halte dies für eine bessere Code-Praxis, da sie nicht vom verwendeten Bereich
break
abhängt. Sie definieren vielmehr eine Variable, die angibt, ob eine bestimmte Schleife unterbrochen werden soll oder nicht. Dies ist nützlich, wenn Sie viele Schleifen haben, die möglicherweise verschachtelt oder sequentiell sind oder nicht.quelle
quelle