Tengo un bucle que está comprobando errores en mi código PHP. Originalmente se veía algo así ...
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
}
Todo esto funciona muy bien, pero sigue funcionando a pesar de que después de un error no es necesario. ¿Hay alguna forma de escapar del bucle?
Como se indicó en otras publicaciones, puede usar la palabra clave break. Una cosa que se insinuó pero no se explicó es que la palabra clave puede tomar un valor numérico para decirle a PHP de cuántos niveles romper.
Por ejemplo, si tiene tres bucles foreach anidados uno en el otro tratando de encontrar un fragmento de información, podría hacer un "salto 3" para salir de los tres bucles anidados. Esto funcionará para las estructuras 'for', 'foreach', 'while', 'do-while' o 'switch'.
fuente
break;
deja tu bucle.continue;
omite cualquier código durante el resto de ese bucle y pasa al siguiente, siempre que la condición siga siendo verdadera.fuente
Puede utilizar la palabra clave break .
fuente
Todas estas son buenas respuestas, pero me gustaría sugerir una más que creo que es un mejor estándar de código. Puede optar por usar una bandera en la condición de bucle que indique si continuar o no el bucle y evitar usar
break
todos juntos.Considero que esto es una mejor práctica de código porque no depende del alcance que
break
se utiliza. Más bien, define una variable que indica si romper o no un ciclo específico. Esto es útil cuando tiene muchos bucles que pueden estar o no anidados o secuenciales.fuente
fuente