Bucles en PHP con la instrucción "for"
Aprende el bucle "for" de PHP: inicialización, condición e incremento, más conteo, pasos personalizados, arrays, bucles anidados, break y continue.
En PHP, la instrucción for es una estructura de control que ejecuta un bloque de código un número determinado de veces. Se utiliza cuando el número de iteraciones es fijo y predecible — imprimir los números del 1 al 10, construir una tabla HTML con N filas, o recorrer un array indexado por posición.
Este capítulo cubre las tres partes de un bucle for, cómo se ejecuta cada una, y patrones prácticos: contar hacia arriba y hacia abajo, tamaños de paso personalizados, iterar sobre arrays, anidar bucles, y las palabras clave break / continue.
Sintaxis
Un bucle for se compone de tres expresiones entre paréntesis, separadas por punto y coma, seguidas del cuerpo del bucle entre llaves:
for (initialization; condition; increment) {
// code to be executed on each pass
}Las tres expresiones se ejecutan en un orden específico:
- Inicialización se ejecuta una vez, antes de que comience el bucle — normalmente establece un contador.
- Condición se comprueba antes de cada iteración. Mientras sea
true, el cuerpo se ejecuta; cuando se vuelvefalse, el bucle se detiene. - Incremento se ejecuta después de cada iteración, justo antes de que la condición se compruebe nuevamente — normalmente avanza el contador.
Inicialización
La inicialización establece el valor de inicio del contador. Se ejecuta una sola vez al principio. Para comenzar a contar desde 1:
$counter = 1;Condición
La condición decide cuándo detenerse. El bucle sigue ejecutándose mientras la condición sea verdadera. Para iterar mientras el contador sea 10 o menos:
$counter <= 10;Si la condición es false en la primera comprobación, el cuerpo nunca se ejecuta.
Incremento
El incremento cambia el contador después de cada paso para que el bucle eventualmente termine. Para sumar 1 cada vez:
$counter++;Si el incremento nunca hace que la condición sea falsa, se produce un bucle infinito. Asegúrate de que el contador avance hacia la condición de parada.
Un ejemplo completo de conteo
Combinando las tres partes, este bucle imprime el valor de $counter en cada paso, del 1 al 10:
El código anterior produce la siguiente salida:
1 2 3 4 5 6 7 8 9 10 (Sin . " ", echo imprimiría los dígitos sin espacios — 12345678910 — porque echo no agrega nada entre valores.)
Contar hacia abajo y pasos personalizados
El incremento es simplemente una expresión, por lo que puede decrementar o avanzar en pasos distintos de 1. Para contar hacia abajo del 10 al 1, empieza alto, detente en 1 y usa $i--:
<?php
for ($i = 10; $i >= 1; $i--) {
echo $i . " ";
}
?>Para avanzar de 2 en 2 (imprimiendo números pares hasta 10), usa $i += 2:
<?php
for ($i = 2; $i <= 10; $i += 2) {
echo $i . " "; // 2 4 6 8 10
}
?>Recorrer un array
Un bucle for puede recorrer un array indexado por posición. La condición utiliza count() para saber cuántos elementos hay, y $i se usa como índice del array:
El código anterior produce la siguiente salida:
apple
banana
cherryTen en cuenta que el bucle comienza en 0 (los arrays de PHP son de índice cero) y la condición es $i < count($fruits) — usando < en lugar de <= porque el último índice válido es count - 1.
Para arrays — especialmente arrays asociativos donde las claves no son enteros secuenciales — el bucle foreach suele ser más claro y seguro que un bucle for, ya que no tienes que gestionar un índice manualmente.
Bucles anidados
Puedes colocar un bucle for dentro de otro. El bucle interno se ejecuta completamente en cada paso del bucle externo. Esto es común para cuadrículas, tablas y salidas tipo multiplicación:
<?php
for ($row = 1; $row <= 3; $row++) {
for ($col = 1; $col <= 3; $col++) {
echo $row * $col . "\t";
}
echo "\n";
}
?>Esto imprime una cuadrícula de multiplicación de 3×3:
1 2 3
2 4 6
3 6 9 Interrumpir y saltar iteraciones
Dos palabras clave te dan un control más preciso dentro del cuerpo del bucle:
breakdetiene el bucle inmediatamente y continúa con el código posterior.continueomite el resto de la iteración actual y salta a la siguiente (el incremento se sigue ejecutando).
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 4) {
continue; // skip 4
}
if ($i == 7) {
break; // stop entirely at 7
}
echo $i . " ";
}
?>El código anterior produce la siguiente salida:
1 2 3 5 6 El 4 es omitido por continue, y el bucle se detiene antes de imprimir 7 debido a break. Aprende más en el capítulo break y continue.
Cuándo usar for frente a otros bucles
- Usa
forcuando conoces el número de iteraciones de antemano, o necesitas un contador / índice. - Usa
foreachpara iterar sobre los elementos de un array u objeto sin gestionar un índice. - Usa
whilecuando iteras hasta que alguna condición cambie y no hay un contador natural. - Usa
do...whilecuando el cuerpo debe ejecutarse al menos una vez antes de comprobar la condición.
Conclusión
El bucle for es una estructura de control esencial en PHP para repetir código un número conocido de veces. Domina sus tres partes — inicialización, condición e incremento — y podrás contar hacia arriba o hacia abajo, avanzar de cualquier cantidad, recorrer arrays por índice y anidar bucles para construir cuadrículas. Para iterar sobre arrays elemento a elemento, prefiere foreach; para repetición indefinida, utiliza while.