Ciclos em PHP: while, do-while, for e foreach explicados

Ciclos em PHP: while, do-while, for e foreach explicados

Neste artigo vais aprender a repetir uma série de ações usando ciclos em PHP.

Os diferentes tipos de ciclo em PHP

Os ciclos servem para executar o mesmo bloco de código vezes sem conta, enquanto uma determinada condição se mantiver. A ideia de fundo é automatizar as tarefas repetitivas de um programa para poupar tempo e esforço. O PHP suporta quatro tipos diferentes de ciclo.

  • while – percorre um bloco de código enquanto a condição indicada for verdadeira.
  • do while – o bloco de código é executado uma vez e só depois a condição é avaliada. Se for verdadeira, a instrução repete-se enquanto a condição indicada se mantiver verdadeira.
  • for – percorre um bloco de código até o contador atingir um número determinado.
  • foreach – percorre um bloco de código para cada elemento de um array.

No fim deste capítulo também vais saber percorrer os valores de um array com o ciclo php foreach. O ciclo php foreach funciona especificamente com arrays.

Ciclo PHP while

A instrução php while permite percorrer um bloco de código enquanto a condição indicada na instrução php while for avaliada como verdadeira.

php while

php
while(condition){
    // Código a executar
}

O exemplo abaixo define um ciclo que começa com $i=1. O ciclo continua a correr enquanto $i for inferior ou igual a 3. O $i aumenta 1 em cada passagem pelo ciclo:

php while

php
$i = 1;
while($i <= 3){
    $i++;
    echo "Le nombre est " . $i . "<br>";
}

Resultado:

Le nombre est 2
Le nombre est 3
Le nombre est 4

Ciclo PHP do while

O ciclo php do while é uma variante do ciclo while que avalia a condição no fim de cada iteração. Com um ciclo php do while, o bloco de código é executado uma vez e só depois a condição é avaliada. Se for verdadeira, a instrução repete-se enquanto a condição indicada continuar a ser avaliada como verdadeira.

php while

php
do{
    // Código a executar
}
while(condition);

O exemplo seguinte define um ciclo que começa com $i=1. Depois aumenta o $i em 1 e mostra a saída. A condição é avaliada a seguir, e o ciclo continua a correr enquanto $i for inferior ou igual a 3.

php do while

php
$i = 1;
do{
    $i++;
    echo "The number is " . $i . "<br>";
}
while($i <= 3);

Resultado:

Le nombre est 2
Le nombre est 3
Le nombre est 4

Diferença entre os ciclos while e do while

O ciclo php while distingue-se do ciclo php do while num ponto importante: com um ciclo php while, a condição é testada no início de cada iteração, por isso, se a expressão condicional for falsa, o ciclo nunca chega a correr.

Com um ciclo php do while, pelo contrário, o ciclo corre sempre uma vez, mesmo que a expressão condicional seja falsa, porque a condição é avaliada no fim da iteração e não no início.

Ciclo PHP for

O ciclo php for repete um bloco de código enquanto uma determinada condição se mantiver. Usa-se sobretudo para executar um bloco de código um número determinado de vezes.

php for

php
for(initialisation; condition; incrementation){
    // Código a executar
}

Os parâmetros do ciclo php for têm o seguinte significado:

  • inicialização – serve para inicializar as variáveis do contador, é avaliada uma única vez e sem condição antes da primeira passagem pelo corpo do ciclo.
  • condição – a condição é avaliada no início de cada iteração. Se for avaliada como true, o ciclo continua e as instruções aninhadas são executadas. Se for avaliada como falsa, a execução do ciclo termina.
  • incremento – atualiza o contador do ciclo com um novo valor. É avaliado no fim de cada iteração.

O exemplo abaixo define um ciclo que começa com $i=1. O ciclo continua até $i ser inferior ou igual a 3. A variável $i aumenta 1 em cada passagem pelo ciclo:

php for

php
for($i=1; $i<=3; $i++){
    echo "Le nombre est " . $i . "<br>";
}

Resultado:

Le nombre est 2
Le nombre est 3
Le nombre est 4

Ciclo PHP foreach

O ciclo php foreach serve para iterar sobre arrays.

php foreach array

php
foreach($array as $value){
    // Código a executar
}

O exemplo seguinte mostra um ciclo que apresenta os valores do array indicado:

php foreach array

php
$colors = array("Rouge", "Vert", "Bleu");

// Ciclo sobre o array das cores
foreach($colors as $value){
    echo $value . "<br>";
}

Resultado:

Rouge
Vert
Bleu

Existe outra sintaxe do ciclo php foreach, que é uma extensão da primeira.

php foreach key value

php
foreach($array as $key => $value){
    // Código a executar
}

php foreach key value

php
$superhero = array(
    "nom" => "Peter Parker",
    "email" => "peterparker@marvel.com",
    "âge" => 16
);

// Ciclo sobre o array dos super-heróis
foreach($superhero as $key => $value){
    echo $key . " : " . $value . "<br>";
}

Resultado:

nom : Peter Parker
email : peterparker@mail.com
âge : 18

Conclusão

A esta altura já deves dominar os ciclos. Se procuras outros artigos para afinar os teus conhecimentos de PHP, sugiro que leias o meu artigo sobre a criação e a formatação de datas em PHP e ainda o meu tutorial de php sobre Laravel, que te dá as bases para trabalhar com uma framework PHP.

PHP

Damien Flandrin Programador web desde 2010, criador da Gekkode e do Email Impact. Cada artigo é testado num projeto real antes de ser publicado. Contacto
Newsletter

Os novos testes, tutoriais e projetos, por e-mail.

Testes reproduzíveis, código versionado, resultados datados. Nunca spam.