Laços em PHP com a instrução "for"
Aprenda o loop "for" do PHP: inicialização, condição e incremento — além de contagem crescente/decrescente, passos personalizados, iteração em arrays, loops aninhados, break e continue.
Em PHP, a instrução for é uma estrutura de controle que executa um bloco de código um número conhecido de vezes. Você a utiliza sempre que o número de iterações é fixo e previsível — imprimir os números de 1 a 10, construir uma tabela HTML com N linhas ou percorrer um array indexado por posição.
Este capítulo cobre as três partes de um loop for, como cada uma é executada e padrões práticos: contagem crescente e decrescente, tamanhos de passo personalizados, iteração em arrays, aninhamento de loops e as palavras-chave break / continue.
Sintaxe
Um loop for é composto por três expressões dentro dos parênteses, separadas por ponto e vírgula, seguidas pelo corpo do loop entre chaves:
for (initialization; condition; increment) {
// code to be executed on each pass
}As três expressões são executadas em uma ordem específica:
- A inicialização é executada uma vez, antes do loop começar — geralmente configura um contador.
- A condição é verificada antes de cada iteração. Enquanto for
true, o corpo é executado; quando se tornafalse, o loop para. - O incremento é executado após cada iteração, logo antes de a condição ser verificada novamente — geralmente avança o contador.
Inicialização
A inicialização define o valor inicial do contador. É executada uma única vez no início. Para começar a contar em 1:
$counter = 1;Condição
A condição decide quando parar. O loop continua sendo executado enquanto a condição for verdadeira. Para executar enquanto o contador for 10 ou menos:
$counter <= 10;Se a condição for false na primeira verificação, o corpo nunca é executado.
Incremento
O incremento altera o contador após cada passagem para que o loop eventualmente termine. Para adicionar 1 a cada vez:
$counter++;Se o incremento nunca tornar a condição falsa, você terá um loop infinito. Certifique-se de que o contador se aproxime da condição de parada.
Um exemplo completo de contagem
Juntando as três partes, este loop imprime o valor de $counter em cada passagem, de 1 a 10:
O código acima produz a saída:
1 2 3 4 5 6 7 8 9 10 (Sem o . " ", o echo imprimiria os dígitos sem espaços — 12345678910 — pois o echo não adiciona nada entre os valores.)
Contagem decrescente e passos personalizados
O incremento é apenas uma expressão, portanto pode decrementar ou avançar em passos diferentes de 1. Para contar de forma decrescente de 10 a 1, comece alto, pare em 1 e use $i--:
<?php
for ($i = 10; $i >= 1; $i--) {
echo $i . " ";
}
?>Para avançar de 2 em 2 (imprimindo números pares até 10), use $i += 2:
<?php
for ($i = 2; $i <= 10; $i += 2) {
echo $i . " "; // 2 4 6 8 10
}
?>Iterando por um array
Um loop for pode percorrer um array indexado por posição. A condição usa count() para saber quantos elementos existem, e $i é usado como índice do array:
O código acima produz a saída:
apple
banana
cherryObserve que o loop começa em 0 (arrays PHP são indexados a partir de zero) e a condição é $i < count($fruits) — usando < em vez de <= porque o último índice válido é count - 1.
Para arrays — especialmente arrays associativos onde as chaves não são inteiros sequenciais — o loop foreach geralmente é mais claro e seguro do que um loop for, pois você não precisa gerenciar um índice manualmente.
Loops aninhados
Você pode colocar um loop for dentro de outro. O loop interno é executado completamente a cada passagem do loop externo. Isso é comum para grades, tabelas e saídas do tipo multiplicação:
<?php
for ($row = 1; $row <= 3; $row++) {
for ($col = 1; $col <= 3; $col++) {
echo $row * $col . "\t";
}
echo "\n";
}
?>Isso imprime uma grade de multiplicação 3×3:
1 2 3
2 4 6
3 6 9 Interrompendo e pulando iterações
Duas palavras-chave oferecem controle mais refinado dentro do corpo do loop:
breakinterrompe o loop imediatamente e continua com o código após ele.continuepula o restante da iteração atual e vai para a próxima (o incremento ainda é executado).
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 4) {
continue; // skip 4
}
if ($i == 7) {
break; // stop entirely at 7
}
echo $i . " ";
}
?>O código acima produz a saída:
1 2 3 5 6 4 é pulado pelo continue, e o loop para antes de imprimir 7 por causa do break. Saiba mais no capítulo break e continue.
Quando usar for em vez de outros loops
- Use
forquando você conhece o número de iterações com antecedência ou precisa de um contador/índice. - Use
foreachpara iterar sobre os elementos de um array ou objeto sem gerenciar um índice. - Use
whilequando você faz um loop até que alguma condição mude e não há um contador natural. - Use
do...whilequando o corpo deve ser executado pelo menos uma vez antes de a condição ser verificada.
Conclusão
O loop for é uma estrutura de controle essencial em PHP para repetir código um número conhecido de vezes. Domine suas três partes — inicialização, condição e incremento — e você poderá contar de forma crescente ou decrescente, avançar em qualquer quantidade, percorrer arrays por índice e aninhar loops para construir grades. Para iterar elemento por elemento em arrays, prefira foreach; para repetição indefinida, utilize while.