La estructura de control for
en PHP define un tipo de bucles (código que se ejecuta repetidamente) y tiene la siguiente sintaxis:
for (exp1; exp2; exp3) { sentencia/s }
Donde:
exp1
es una expresión que se ejecuta una vez, y de forma incondicional, antes de iniciar el bucle. Suele utilizarse para dar un valor inicial al índice del bucle.
exp2
es una expresión evaluada al inicio de cada iteracción del bucle, de forma que, si es verdadera se continúa ejecutando el bucle, y si es falsa termina y sale del bucle.
exp3
es una expresión evaluada al final de cada iteracción del bucle. Suele utilizarse para incrementar el valor del índice del bucle.
Ejemplo:
for ($i=1; $i<=10; $i++) { echo $i . '<br>'; }
… que escribirá los números del 1 al 10.
Otra forma válida de escribir un bucle for
en PHP es de la siguiente forma:
for (exp1; exp2; exp3): sentencia/s endfor;
… cuyo funcionamiento es exactamente el mismo que en la estructura anterior.
Cabe decir que las expresiones dadas en el bucle for
pueden estar vacías, o bien contener subexpresiones múltiples (separadas por comas).
Si dejamos exp2
vacío, éste tomará el valor true
y el bucle será recorrido indefinidamente, o bien podemos salir del mismo haciendo uso de las sentencias break
o goto
.
El uso de break
dentro de un bucle for
terminaría su ejecución, continuando por la siguiente sentencia posterior al bucle.
El uso de goto
dentro de un bucle for
haría saltar a otro punto del código fuente del programa, definido por etiqueta
, de forma que goto etiq1
saltaría hasta el punto del código fuente donde esté definida la etiqueta etiq1
.
Veamos un ejemplo que contenga todo ésto:
for ( ; ; ) { $i++; echo $i . '<br>'; if ($i==10) { break } }
… que sería equivalente a este otro código:
for ( ; ; ) { $i++; echo $i . '<br>'; if ($i==10) { goto e1 } } // (...) e1: // a este punto saltamos tras la ejecución del goto
Ambos ejemplos anteriores hacen lo mismo que vimos en el primer ejemplo de este artículo, escribir los números del 1 al 10.