for
(PHP 4, PHP 5, PHP 7, PHP 8)
Os laços for
são os mais complexo no PHP.
Possui comportamento semelhante ao C. A sintaxe do laço
for
é:
A primeira expressão (expr1) é
avaliada (executada), uma vez, incondicionalmente, no início
do laço.
No começo de cada iteração a
expr2 é avaliada. Se a avaliada como
true
, o laço continuará e as instruções aninhada
serão executadas. Se avaliada como
false
, a execução do laço terminará.
No final de cada iteração, a expr3 é
avaliada (executada).
Cada uma das expressões podem ser vazias ou conter múltiplas
expressões separadas por vírgulas. Na expr2, todas
as expressões separadas por vírgula são avaliadas mas o resultado é
obtido da última parte.
Se a expr2 estiver vazia significa que o laço deve
ser executado indefinidamente (O PHP considera implicitamente como
true
, igual ao C). Isto não é inútil
como se imagina, pois muitas vezes deseja-se interromper o laço utilizando
a instrução break
ao invés de usar a expressão verdade do
for
.
Analise os seguintes exemplos. Todos exibem números
de 1 até 10:
É claro que o primeiro exemplo aparenta ser o mais simpático (ou
talvez o quarto), mas pode-se achar que o uso de expressões
vazias no laço for
, seja vantajoso em algumas
ocasiões.
O PHP também suporta a sintaxe alternativa "dois pontos" para o
laço for
.
É comum, para muitos usuários, iterar em arrays como no
exemplo abaixo.
O código acima pode se tornar lento, pois o tamanho do array será calculado
a cada iteração. Desde que o tamanho nunca mude, o laço pode ser facilmente
otimizado usando uma variável intermediária para armazenar o tamanho ao invés
de executar repetidamente o count():