Eu tenho um loop que está fazendo uma verificação de erros no meu código PHP. Originalmente parecia algo assim ...
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
}
Isso funciona muito bem, mas ainda está em loop, apesar de depois de um erro não ser necessário. Existe uma maneira de escapar do loop?
Conforme declarado em outras postagens, você pode usar a palavra-chave break. Uma coisa que foi sugerida, mas não explicada, é que a palavra-chave pode assumir um valor numérico para dizer ao PHP de quantos níveis quebrar.
Por exemplo, se você tem três loops foreach aninhados um no outro tentando encontrar uma informação, você pode fazer 'break 3' para sair de todos os três loops aninhados. Isso funcionará para as estruturas 'for', 'foreach', 'while', 'do-while' ou 'switch'.
fonte
break;
deixa seu loop.continue;
pula qualquer código para o restante desse loop e passa para o próximo loop, desde que a condição ainda seja verdadeira.fonte
Você pode usar a palavra - chave break .
fonte
Todas essas são boas respostas, mas gostaria de sugerir mais uma que considero um padrão de código melhor. Você pode escolher usar um sinalizador na condição de loop que indica se deve ou não continuar o loop e evitar usar
break
todos juntos.Eu considero essa uma prática de código melhor porque não depende do escopo que
break
é usado. Em vez disso, você define uma variável que indica se deve ou não interromper um loop específico. Isso é útil quando você tem muitos loops que podem ou não ser aninhados ou sequenciais.fonte
fonte