Los bucles for son los bucles más complejos en
PHP. Se comportan como su contrapartida en C. La sintaxis de un
bucle for es:
La primera expresión (expr1) se evalúa
(ejecuta) incondicionalmente una vez al principio del bucle.
Al comienzo de cada iteración, se evalúa expr2
. Si se evalúa como TRUE, el
bucle continúa y las sentencias anidadas se ejecutan. Si se evalúa
como FALSE, la ejecución del bucle finaliza.
Al final de cada iteración, se evalúa (ejecuta)
expr3.
Cada una de las expresiones puede estar vacía.
Que expr2 esté vacía significa
que el bucle debería correr indefinidamente (PHP implicitamente
lo considera como TRUE, al igual que C).
Esto puede que no sea tan inútil como se podría pensar, puesto
que a menudo se quiere salir de un bucle usando una sentencia
break
condicional en vez de usar la condición de for.
Considera los siguientes ejemplos. Todos ellos muestran números del
1 al 10:
Por supuesto, el primer ejemplo parece ser el mas elegante (o quizás
el cuarto), pero uno puede descubrir que ser capaz de usar expresiones
vacías en bucles for resulta útil en muchas
ocasiones.
PHP también soporta la "sintaxis de dos puntos" alternativa para
bucles for.
Otros lenguajes poseen una sentencia foreach para
traducir un array o una tabla hash. PHP3 no posee tal construcción;
PHP4 sí (ver foreach).
En PHP3, se puede combinar while
con las funciones list() y each()
para conseguir el mismo efecto. Mirar la documentación de estas funciones
para ver un ejemplo.