La declaración break junto con la declaración continue en PHP se conocen como «sentencias de control de bucle». Cualquier tipo de bucle (for, while o do-while) en PHP está diseñado para ejecutarse durante un cierto número de iteraciones, según la condición de prueba utilizada. La instrucción break dentro del bloque de bucle lleva el flujo del programa fuera del bloque, abandonando el resto de iteraciones que puedan quedar.
La instrucción break se utiliza normalmente de forma condicional. De lo contrario, el bucle terminará sin completar la primera iteración.
La sintaxis de la instrucción break es la siguiente:
while(expr){if(condition){break;}}
En el siguiente diagrama de flujo se explica cómo funciona la instrucción break:
Ejemplo
El siguiente código PHP es un ejemplo simple de uso de break en un bucle. Se espera que el bucle while realice diez iteraciones. Sin embargo, una instrucción break dentro del bucle lo termina cuando el contador supera 3.
<?php
$i = 1;
while ($i<=10){
echo "Iteration No. $i \n";
if ($i>=3){
break;
}
$i++;
}
?>
Producirá el siguiente resultado:
Iteration No. 1
Iteration No. 2
Iteration No. 3
Se puede dar un argumento numérico opcional delante de la palabra clave break. Es especialmente útil en construcciones de bucle anidadas. Indica cuántas estructuras de cerramiento anidadas se van a romper. El valor predeterminado es 1, solo se rompe la estructura envolvente inmediata.
Ejemplo
El siguiente ejemplo tiene tres bucles anidados: un bucle for dentro del cual hay un bucle while que, a su vez, contiene un bucle do-while.
El bucle más interno ejecuta la ruptura. El número «2» delante de él saca el control del ámbito actual y lo coloca en el bucle for en lugar del bucle while inmediato.
<?php
for ($x=1; $x<=3; $x++){
$y=1;
while ($y<=3){
$z=1;
do {
echo "x:$x y:$y z:$z \n";
if ($z==2){
break 2;
}
$z++;
}
while ($z<=3);
$z=1;
$y++;
}
}
?>
Producirá el siguiente resultado:
x:1 y:1 z:1
x:1 y:1 z:2
x:2 y:1 z:1
x:2 y:1 z:2
x:3 y:1 z:1
x:3 y:1 z:2
Tenga en cuenta que cada vez que el valor de «z» se convierte en 2, el programa sale del bucle «y». Por lo tanto, el valor de «y» siempre es 1.