while

(PHP 4, PHP 5, PHP 7, PHP 8)

Los bucles while son el tipo más sencillo de bucle en PHP. Se comportan igual que 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 las sentencias anidadas, tanto como la expresión while se evalúe como true. El valor de la expresión es verificado cada vez al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentencias anidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que PHP ejecuta las sentencias contenidas en el bucle es una iteración). A veces, si la expresión while se evalúa como false desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez.

Al igual que con la sentencia if, se pueden agrupar varias instrucciones dentro del mismo bucle while rodeando un grupo de sentencias con corchetes, o utilizando la sintaxis alternativa:

while (expr):
    sentencias
    ...
endwhile;

Los siguientes ejemplos son idénticos y ambos presentan los números del 1 al 10:

<?php
/* ejemplo 1 */

$i = 1;
while (
$i <= 10) {
echo
$i++; /* el valor presentado sería
$i antes del incremento
(post-incremento) */
}

/* ejemplo 2 */

$i = 1;
while (
$i <= 10):
echo
$i;
$i++;
endwhile;
?>

add a note

User Contributed Notes 3 notes

up
-16
razvan_bc at yahoo dot com
1 year ago
assuming you want to have another way to archieve
<?php

for($i=10;$i>0;$i--){
echo
$i.'<br>';
}

?>

then yo have this:

<?php

$v
=10;
do{
echo
$v.'<br>';
}while(--
$v);

/*
while(--$v) : 10...1 , when $v==0 stops
*/

?>
up
-44
Dan Liebner
2 years ago
While loops don't require a code block (statement).

<?php

while( ++$i < 10 ); // look ma, no brackets!

echo $i; // 10

?>
up
-45
mparsa1372 at gmail dot com
2 years ago
The example below displays the numbers from 1 to 5:

<?php
$x
= 1;

while(
$x <= 5) {
echo
"The number is: $x <br>";
$x++;
}
?>

This example counts to 100 by tens:

<?php
$x
= 0;

while(
$x <= 100) {
echo
"The number is: $x <br>";
$x+=10;
}
?>
To Top