Manual do PHP
Anterior | Capítulo 11. Estruturas de Controle | Próxima

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

`<?php /* exemplo 1 */ for ($i = 1; $i <= 10; $i++) { echo $i; } /* exemplo 2 */ for ($i = 1; ; $i++) { if ($i > 10) { break; } echo $i; } /* exemplo 3 */ $i = 1; for (; ; ) { if ($i > 10) { break; } echo $i; $i++; } /* exemplo 4 */ for ($i = 1; $i <= 10; echo $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.

Anterior | Principal | Próxima
do..while | Acima | foreach