W3docs

Bucles en PHP con el Bucle While

El bucle while en PHP permite repetir un bloque de código mientras una condición sea verdadera. Aprende su sintaxis, bucles infinitos y diferencias con do...while.

El bucle while en PHP repite un bloque de código mientras una condición dada permanezca en true. Es la herramienta adecuada cuando no se sabe de antemano cuántas iteraciones se necesitan — por ejemplo, leer filas de una base de datos hasta que no quede ninguna, o solicitar una entrada hasta que sea válida. Cuando se conoce de antemano el número de iteraciones, un bucle for suele ser más claro.

Este artículo cubre la sintaxis del bucle while, cómo se evalúa su condición, la forma alternativa con endwhile, los bucles infinitos y cómo salir de ellos, y en qué se diferencia while del bucle relacionado do...while.

La Estructura del Bucle While

La estructura básica del bucle while en PHP es la siguiente:

Sintaxis del bucle while en PHP

while (condition) {
  // code to be executed
}

La condition es cualquier expresión que PHP evalúa como un boolean (true o false). El bucle funciona en tres pasos:

  1. La condition se evalúa antes de cada iteración.
  2. Si es true, el cuerpo se ejecuta una vez.
  3. PHP vuelve al paso 1 y vuelve a evaluar la condición.

Esto es importante: como la comprobación ocurre primero, el cuerpo se ejecuta cero veces si la condición es false desde el principio. Algo dentro del bucle (o la propia condición) debe eventualmente hacer que la condición sea false, de lo contrario el bucle se ejecuta indefinidamente — consulta Bucles Infinitos más abajo.

Sintaxis alternativa con endwhile

PHP también ofrece una forma con dos puntos y endwhile, que resulta útil cuando se mezclan bucles con HTML en una plantilla:

<?php $i = 1; ?>
<ul>
<?php while ($i <= 3): ?>
  <li>Item <?php echo $i; ?></li>
  <?php $i++; ?>
<?php endwhile; ?>
</ul>

Ambas formas se comportan de manera idéntica; elige la que se lea mejor según el contexto.

Ejemplo de Uso del Bucle While

Consideremos un ejemplo de uso del bucle while para imprimir los números del 1 al 10. Aquí está el código:

Ejemplo PHP del Bucle While

php— editable, runs on the server

En este ejemplo, inicializamos una variable $i a 1 y establecemos la condición como $i <= 10. El bucle sigue ejecutándose mientras $i sea 10 o menos. En cada iteración, imprimimos el valor de $i y lo incrementamos en 1. En cuanto $i llega a 11, la condición es false y el bucle termina. La salida del código es:

1 2 3 4 5 6 7 8 9 10

Un ejemplo práctico: recorrer un array

while se usa frecuentemente con un contador para recorrer un array indexado. La condición detiene el bucle en la longitud del array, por lo que nunca se lee más allá del final:

<?php

$fruits = ["Apple", "Banana", "Cherry"];
$i = 0;

while ($i < count($fruits)) {
  echo $fruits[$i] . "\n";
  $i++;
}

?>

Esto imprime cada fruta en su propia línea:

Apple
Banana
Cherry

Cuando se itera sobre los elementos de un array de esta forma, un bucle foreach suele ser la opción más limpia — elimina por completo el contador manual. Usa while cuando el punto de parada depende de algo distinto a una longitud conocida (como la disponibilidad de datos).

Bucles Infinitos y Salida de Bucles

Es posible crear un bucle infinito usando una expresión que siempre evalúa a true en la condición del bucle while. Por ejemplo:

Sintaxis de bucle while infinito en PHP

while (true) {
  // code to be executed
}

En tales casos, es necesario usar la sentencia break para salir del bucle cuando se cumpla una determinada condición. La sentencia break detendrá inmediatamente el bucle y continuará con la siguiente sentencia después del bucle. Aquí hay un ejemplo:

Bucles Infinitos y Salida de Bucles

php— editable, runs on the server

En este ejemplo, el bucle imprime los números del 1 al 10 y luego se detiene. La comprobación if combinada con break actúa como la condición de salida real. La sentencia relacionada continue es diferente: en lugar de salir del bucle, omite el resto de la iteración actual y salta directamente de vuelta a la comprobación de la condición.

while vs. do...while

Un bucle while comprueba su condición antes de ejecutar el cuerpo, por lo que el cuerpo puede que no se ejecute nunca. El bucle do...while es su imagen especular: comprueba la condición después del cuerpo, garantizando que el cuerpo se ejecute al menos una vez.

<?php

$i = 100;

// Condition is false from the start — body never runs:
while ($i < 10) {
  echo "while: $i\n";
  $i++;
}

// Body runs once, then the condition is checked:
do {
  echo "do-while: $i\n";
  $i++;
} while ($i < 10);

?>

Salida:

do-while: 100

Usa do...while cuando la acción debe ocurrir antes de saber si hay que repetirla — por ejemplo, solicitar una entrada y solo volver a solicitarla si no era válida.

Conclusión

El bucle while ejecuta un bloque de código mientras su condición permanezca en true, con la condición comprobada antes de cada iteración. Recuerda las tres claves para usarlo de forma segura: inicializa tu variable de control antes del bucle, escribe una condición que eventualmente se vuelva false, y actualiza esa variable (o usa break) dentro del cuerpo. Para más opciones de bucles, consulta la descripción general de bucles PHP, el bucle for controlado por contador, y los operadores de comparación que usarás para construir condiciones de bucle.

Diagrama

graph TD;
  A[While Loop Structure] --> B[Expression Evaluation];
  B --> C{Execute Code};
  C --> B;
  B --> D[False];
  D --> E[End Loop];

Práctica

Práctica
¿Cuáles son las propiedades del bucle 'while' en PHP?
¿Cuáles son las propiedades del bucle 'while' en PHP?
Was this page helpful?