for

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 :

 
for

 
(

 
expr1

 
;

 
expr2

 
;

 
expr3

 
)

 
sentencia





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 :

 
/*

 
ejemplo

 
1

 
*

 
/

 
for

 
(

 
$i

 
=

 
1

 
;

 
$i

 
=

 
10

 
;

 
$i++

 
)

 
{

 
print

 
$i

 
;

 
 }

 
/

 
*

 
ejemplo

 
2

 
*

 
/

 
for

 
($i

 
=

 
1;;$i++

 
)

 
{

 
if

 
($i

 
10

 
)

 
{

 
break

 
;

 
     }

 
print

 
$i

 
;

 
 }

 
/

 
*

 
ejemplo

 
3

 
*

 
/

 
$i

 
=

 
1

 
;

 
for

 
(;

 
;

 
)

 
{

 
if

 
($i

 
10

 
)

 
{

 
break

 
;

 
     }

 
print

 
$i

 
;

 
$i++

 
;

 
 }

 
/

 
*

 
ejemplo

 
4

 
*

 
/

 
for

 
($i

 
=

 
1

 
;

 
$i

 
=

 
10

 
;

 
print

 
$i

 
,

 
$i++

 
)

 
;





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 .

 
for

 
(

 
expr1

 
;

 
expr2

 
;

 
expr3)

 
:

 
sentencia

 
;

 
...

 
;

 
endfor

 
;





Otros lenguajes poseen una sentencia foreach para traducir un array o una tabla hash . PHP3 no posee tal construcción ; PHP4 (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 .