Los bucles while son los tipos de bucle más simples en PHP. Se comportan
como su contrapartida en C. La forma básica
de una sentencia while es:
while (expr) sentencia
El significado de una sentencia while es simple. Le dice a PHP que ejecute la(s)
sentencia(s) anidada(s) repetidamente,
mientras la expresión while se evalúe como TRUE. El valor de la
expresión es comprobado cada vez al principio del bucle,
así que incluso si este valor cambia durante la ejecución de la(s)
sentencia(s) anidada(s), la ejecución no parará hasta el fin
de la iteración (cada vez que PHP ejecuta las sentencias en el bucle
es una iteración). A veces, si la expresión while se
evalúa como FALSE desde el principio de todo, la(s) sentencia(s) anidada(s)
no se ejecutarán ni siquiera una vez.
Como con la sentencia if, se pueden agrupar multiples sentencias dentro del
mismo bucle while encerrando un grupo de
sentencias con llaves, o usando la sintaxis alternativa:
while (expr): sentencia ... endwhile;
Los siguientes ejemplos son idénticos, y ambos imprimen números
del 1 al 10:
/* ejemplo 1 */
$i = 1;
while ($i <= 10) {
print $i++; /* el valor impreso sería
$i antes del incremento
(post-incremento) */
}
/* ejemplo 2 */
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
Los bucles do..while son muy similares a los bucles while, excepto que las
condiciones se comprueban al final de cada
iteración en vez de al principio. La principal diferencia frente a los
bucles regulares while es que se garantiza la ejecución
de la primera iteración de un bucle do..while (la condición se
comprueba sólo al final de la iteración), mientras que
puede no ser necesariamente ejecutada con un bucle while regular (la condición
se comprueba al principio de cada
iteración, si esta se evalúa como FALSE desde el principio la
ejecución del bucle finalizará inmediatamente).
Hay una sola sintaxis para los bucles do..while:
$i = 0;
do {
print $i;
} while ($i>0);
El bucle de arriba se ejecutaría exactamente una sola vez, después
de la primera iteración, cuando la condición se
comprueba, se evalúa como FALSE ($i no es más grande que 0) y
la ejecución del bucle finaliza.
Los usuarios avanzados de C pueden estar familiarizados con un uso distinto
del bucle do..while, para permitir parar la
ejecución en medio de los bloques de código, encapsulandolos con
do..while(0), y usando la sentencia break. El
siguiente fragmento de código demuestra esto:
do {
if ($i < 5) {
print "i no es lo suficientemente grande";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
print "i es correcto";
...procesa i...
} while(0);
|
Anterior: if else elseif en php |
Siguiente: bucle for en php |
| articulos relacionados |