for

Loops for são os laços mais complexos em PHP . Eles se comportam como os seus compatíveis em C . A sintaxe de um loop for é :

 
for

 
(

 
expr1

 
;

 
expr2

 
;

 
expr3

 
)

 
instrucoes





A primeira expressão ( expr1 ) é avaliada (executada ) uma vez incondicionalmente no começo do loop .

No começo de cada iteração , expr2 é avaliada . Se ela é avaliada como TRUE , o loop continua e o( s ) comando(s ) aninhado(s ) é(são ) executado(s ) . Se é avaliada como FALSE , a execução do ' loop ' termina .

No fim de cada iteração , expr3 é avaliada ( executada ) .

Cada uma das expressões pode ser vazia . expr2 vazia significa que o loop pode rodar indefinidamente ( PHP considera-a implicitamente como TRUE , como em C ) . Isto pode não ser tão inútil quanto você pode pensar , pois freqüentemente você pode querer terminar o ' loop ' usando uma instrução break condicional em vez de usar a expressão-verdade do for .

Considere os seguintes exemplos . Todos eles mostram números de 1 a 10 :

 
/*

 
exemplo

 
1

 
*

 
/

 
for

 
(

 
$i

 
=

 
1

 
;

 
$i

 
=

 
10

 
;

 
$i++

 
)

 
{

 
print

 
$i

 
;

 
}

 
/

 
*

 
exemplo

 
2

 
*

 
/

 
for

 
($i

 
=

 
1;;$i++

 
)

 
{

 
if

 
($i

 
10

 
)

 
{

 
break

 
;

 
    }

 
print

 
$i

 
;

 
}

 
/

 
*

 
exemplo

 
3

 
*

 
/

 
$i

 
=

 
1

 
;

 
for

 
(;

 
;

 
)

 
{

 
if

 
($i

 
10

 
)

 
{

 
break

 
;

 
    }

 
print

 
$i

 
;

 
$i++

 
;

 
}

 
/

 
*

 
exemplo

 
4

 
*

 
/

 
for

 
($i

 
=

 
1

 
;

 
$i

 
=

 
10

 
;

 
print

 
$i

 
,

 
$i++)

 
;





Obviamente , o primeiro exemplo parece ser o mais bonito ( ou talvez o quarto ) , mas você pode perceber que a possível utilização de expressões vazias em laços for se torna prático em algumas ocasiões .

O PHP também suporta a " sintaxe de dois-pontos " alternativa para laços for :

 
for

 
(

 
expr1

 
;

 
expr2

 
;

 
expr3)

 
:

 
instrucoes

 
;

 
...

 
;

 
endfor

 
;





Outras linguagens têm uma instrução foreach para varrer uma matriz ou tabela de hashing . O PHP 3 não tem uma construção deste tipo ; O PHP 4 possui (veja foreach ) . No PHP 3 , você pode combinar while com as funções list( ) e each( ) para obter o mesmo efeito . Veja a documentação para estas funções para exemplos .