Estruturas de repetição são recursos que permitem executar mais de uma vez trechos de código de acordo com uma condição. O PHP possui quatro estruturas de repetição: for, foreach, while e do-while.
Neste documento apresentamos as estruturas de repetição for e foreach.
Confira todos os nossos Cursos de PHP
Tópicos
For
O for é a estrutura de repetição do PHP que utilizamos quando sabemos a quantidade de repetições que devem ser executadas.
Sintaxe do for:
for (expressão 1; expressão 2; expressão 3) {
// bloco de código
}
A sintaxe é composta por três expressões separadas por ponto e vírgula, cada uma delas podendo ter zero, uma ou mais declarações separadas por vírgula:
- Expressão 1: Executada somente uma vez, ao iniciar o loop. Normalmente a utilizamos para declarar e inicializar as variáveis que faremos uso para controlar o número de iterações do loop;
- Expressão 2: Expressão booleana, validada antes de cada iteração do loop. Se a expressão contiver múltiplas expressões, todas serão executadas, mas somente o resultado da última será considerado. Se a expressão for vazia, ela será interpretada como verdadeira. O loop somente será executado enquanto essa expressão retornar true;
- Expressão 3: Executada ao final de cada iteração, normalmente a utilizamos para declarar a forma de atualização do valor da variável avaliada na expressão 2.
Exemplo de uso:
for ($i=0; $i < 10; $i++) {
echo $i."<br>";
}
Ao executar este código serão impressos os números de 0 a 9.
Nota: O for pode ser declarado sem um bloco de código, colocando as ações dentro da terceira expressão. Ademais, caso haja apenas uma linha a ser executada, as chaves são opcionais. No entanto, recomenda-se o uso delas mesmo nestas ocasiões, visando manter uma boa legibilidade do código.
Em PHP, também podemos declarar o for utilizando a sintaxe alternativa, com “dois pontos” e endfor.
Exemplo de uso:
for ($i = 0; $i < 10; $i++):
echo $i."<br>";
endfor;
Foreach
O foreach é uma simplificação do operador FOR para se trabalhar em coleções de dados, ou seja, vetores e matrizes. Ele permite acessar cada elemento individualmente iterando sobre toda a coleção e sem a necessidade de informação de índices.
Por exemplo, supondo que fosse preciso percorrer um vetor com alguns elementos com o FOR. Seria necessário utilizar um contador para servir também de índice para acessar cada elemento, conforme a listagem a seguir.
$vetor = array(1, 2, 3, 4, 5);
for($i = 0; $i < 5; $i++)
{
$item = $vetor[$i];
echo $item;
}
Esse código poderia ser simplificado com a utilização do operador FOREACH, cuja sintaxe é mostrada abaixo.
foreach(vetor as variável)
{
//variável representa um elemento do vetor a cada iteração
}
Então, reescrevendo o código da Listagem 12, teríamos:
$vetor = array(1, 2, 3, 4, 5);
foreach($vetor as $item)
{
echo $item;
}
Assim, a cada iteração (repetição) a variável $item representa um elemento do vetor.
Break
As estruturas de repetição possuem um comando para finalizar um loop caso seja necessário, o comando break. Com ele podemos interromper a execução de um loop a qualquer momento.
Exemplo de uso:
$pararLoop = 9;
for($numero = 0; ; $numero++){
if($numero == $pararLoop){
break;
}
echo $numero."<br>";
}
Ao executar este código o loop declarado dentro do for será processado até que a condição criada para chamar o break seja verdadeira; neste caso, numero ser igual a pararLoop. O resultado será a impressão dos valores de 0 a 8.
Continue
Além do break, podemos declarar a palavra reservada continue em uma estrutura de repetição. Quando executada, os comandos subsequentes do bloco de código serão desconsiderados e uma nova iteração iniciada.
Exemplo de uso:
for($i = 0; $i < 10; $i++){
if($i % 2 == 0){
continue;
}
echo $i."<br>";
}
Ao executar este código serão impressos os números ímpares entre 0 e 10. Para não imprimir os números pares, utilizamos o continue, que pulará para a próxima iteração do loop toda vez que o resto da divisão do valor de i por 2 for igual a 0.
Exemplo prático
Suponha que você precisa apresentar ao usuário o total da soma dos valores de uma coleção de números. Para programar esse código, podemos utilizar a estrutura de repetição for.
Exemplo de uso:
$colecao = [1, 3, 6, 9, 13];
$soma = 0;
for($i = 0, $j = count($colecao); $i < $j; $i++){
$soma += $colecao[$i];
}
echo $soma;
Note que na expressão 1 do for declaramos e inicializamos duas variáveis (i e j) utilizando a vírgula para separar esses códigos. Ao executar esta implementação será impresso o resultado da soma dos números da coleção: 32.