Los bucles o sentencias repetitivas son estructuras que permiten repetir una secuencia de sentencias mientras se de cierta condición.
while
: Usandowhile
puedes definir un bucle que se ejecuta mientras se cumpla una expresión. La expresión se evalúa antes de comenzar cada ejecución del bucle.<?php $a = 1; while ($a < 8){ $a += 3; } echo $a; // el valor obtenido es 10 ?>
do / while
: Es un bucle similar al anterior, pero la expresión se evalúa al final, con lo cual se asegura que la sentencia o conjunto de sentencias del bucle se ejecutan al menos una vez.<?php $a = 5; do{ $a -= 3; }while ($a > 10); print $a; // el bucle se ejecuta una sola vez, con lo que el valor obtenido es 2 ?>
for
: Son los bucles más complejos de PHP. Al igual que los del lenguaje C, se componen de tres expresiones:for (expr1; expr2; expr3){ sentencia o conjunto de sentencias; }
La primera expresión,expr1
, se ejecuta solo una vez al comienzo del bucle.La segunda expresión,
expr2
, se evalúa para saber si se debe ejecutar o no la sentencia o conjunto de sentencias. Si el resultado elfalse
, el bucle termina.Si el resultado es
true
, se ejecutan las sentencias y al finalizar se ejecuta la tercera expresión,expr3
, y se vuelve a evaluarexpr2
para decidir si se vuelve a ejecutar o no el bucle.<?php for ($a = 5; $a<10; $a+=3) { print $a; // Se muestran los valores 5 y 8 print "<br />"; } ?>
Puedes anidar cualquiera de los bucles anteriores en varios niveles. También puedes usar las sentencias
break
, para salir del bucle, ycontinue
, para omitir la ejecución de las sentencias restantes y volver a la comprobación de la expresión respectivamente.break
acepta un argumento numérico opcional que indica de cuántas estructuras anidadas circundantes se debe salir y de igual maneracontinue
también acepta un argumento numérico opcional, que indica a cuántos niveles de bucles encerrados se ha de saltar al final.