J'ai une boucle qui effectue une vérification d'erreur dans mon code PHP. À l'origine, cela ressemblait à quelque chose comme ça ...
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
}
Cela fonctionne très bien, mais il est toujours en boucle malgré une erreur, ce n'est pas nécessaire. Existe-t-il un moyen d'échapper à la boucle?
Comme indiqué dans d'autres articles, vous pouvez utiliser le mot-clé break. Une chose qui a été suggérée mais non expliquée est que le mot-clé peut prendre une valeur numérique pour indiquer à PHP le nombre de niveaux à rompre.
Par exemple, si vous avez trois boucles foreach imbriquées les unes dans les autres pour essayer de trouver une information, vous pouvez faire «break 3» pour sortir des trois boucles imbriquées. Cela fonctionnera pour les structures «for», «foreach», «while», «do-while» ou «switch».
la source
break;
laisse votre boucle.continue;
ignore tout code pour le reste de cette boucle et passe à la boucle suivante, tant que la condition est toujours vraie.la source
Vous pouvez utiliser le mot-clé break .
la source
Toutes ces réponses sont de bonnes réponses, mais j'aimerais en suggérer une de plus qui, selon moi, est une meilleure norme de code. Vous pouvez choisir d'utiliser un indicateur dans la condition de boucle qui indique s'il faut ou non continuer la boucle et éviter d'utiliser
break
tout ensemble.Je considère que c'est une meilleure pratique de code parce qu'elle ne repose pas sur la portée qui
break
est utilisée. Vous définissez plutôt une variable qui indique s'il faut interrompre ou non une boucle spécifique. Ceci est utile lorsque vous avez de nombreuses boucles qui peuvent ou non être imbriquées ou séquentielles.la source
la source