W3docs

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:

  1. Inicialización se ejecuta una vez, antes de que comience el bucle — normalmente establece un contador.
  2. Condición se comprueba antes de cada iteración. Mientras sea true, el cuerpo se ejecuta; cuando se vuelve false, el bucle se detiene.
  3. 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:

php— editable, runs on the server

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:

php— editable, runs on the server

El código anterior produce la siguiente salida:

apple
banana
cherry

Ten 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:

  • break detiene el bucle inmediatamente y continúa con el código posterior.
  • continue omite 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 for cuando conoces el número de iteraciones de antemano, o necesitas un contador / índice.
  • Usa foreach para iterar sobre los elementos de un array u objeto sin gestionar un índice.
  • Usa while cuando iteras hasta que alguna condición cambie y no hay un contador natural.
  • Usa do...while cuando 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.

Práctica

Práctica
En PHP, ¿cuáles son las tres expresiones de un bucle 'for', en orden?
En PHP, ¿cuáles son las tres expresiones de un bucle 'for', en orden?
Was this page helpful?