W3docs

Loop While em PHP

O loop while no PHP permite repetir um bloco de código enquanto uma condição for verdadeira. Veja sintaxe, exemplos práticos e loops infinitos.

O loop while em PHP repete um bloco de código enquanto uma determinada condição permanecer true. É a ferramenta certa quando você não sabe com antecedência quantas iterações serão necessárias — por exemplo, lendo linhas de um banco de dados até não restar nenhuma, ou pedindo uma entrada até que ela seja válida. Quando você sabe de antemão o número de iterações, um loop for geralmente é mais claro.

Este artigo aborda a sintaxe do loop while, como sua condição é avaliada, a forma alternativa com endwhile, loops infinitos e como sair deles, e como o while difere do loop do...while.

A Estrutura do Loop While

A estrutura básica do loop while em PHP é a seguinte:

Sintaxe do loop while em PHP

while (condition) {
  // code to be executed
}

A condition é qualquer expressão que o PHP avalia como boolean (true ou false). O loop funciona em três etapas:

  1. A condition é avaliada antes de cada iteração.
  2. Se for true, o corpo é executado uma vez.
  3. O PHP retorna à etapa 1 e reavalia a condição.

Isso é importante: como o teste acontece primeiro, o corpo é executado zero vezes se a condição for false desde o início. Algo dentro do loop (ou a própria condição) deve eventualmente tornar a condição false, caso contrário o loop é executado para sempre — veja Loops Infinitos abaixo.

Sintaxe alternativa com endwhile

O PHP também oferece uma forma com dois-pontos e endwhile, que é útil quando você mistura loops com HTML em um template:

<?php $i = 1; ?>
<ul>
<?php while ($i <= 3): ?>
  <li>Item <?php echo $i; ?></li>
  <?php $i++; ?>
<?php endwhile; ?>
</ul>

Ambas as formas se comportam de maneira idêntica; escolha a que for mais legível no contexto.

Exemplo de Uso do Loop While

Vamos considerar um exemplo de uso do loop while para imprimir os números de 1 a 10. Aqui está o código:

Exemplo PHP de Uso do Loop While

php— editable, runs on the server

Neste exemplo, inicializamos uma variável $i com 1 e definimos a condição como $i <= 10. O loop continua executando enquanto $i for 10 ou menos. Em cada iteração, imprimimos o valor de $i e o incrementamos em 1. Assim que $i se torna 11, a condição é false e o loop termina. A saída do código é:

1 2 3 4 5 6 7 8 9 10

Um exemplo prático: percorrendo um array

O while é frequentemente usado com um contador para percorrer um array indexado. A condição para o loop no tamanho do array, de modo que você nunca lê além do final:

<?php

$fruits = ["Apple", "Banana", "Cherry"];
$i = 0;

while ($i < count($fruits)) {
  echo $fruits[$i] . "\n";
  $i++;
}

?>

Isso imprime cada fruta em sua própria linha:

Apple
Banana
Cherry

Ao iterar sobre os elementos de um array desta forma, um loop foreach geralmente é a opção mais limpa — ele remove completamente o contador manual. Use o while quando o ponto de parada depender de algo diferente de um comprimento conhecido (como dados ainda disponíveis).

Loops Infinitos e Saída de Loops

É possível criar um loop infinito usando uma expressão que sempre avalia como true na condição do loop while. Por exemplo:

Sintaxe de loop while infinito em PHP

while (true) {
  // code to be executed
}

Nesses casos, é necessário usar a instrução break para sair do loop quando uma determinada condição for atendida. A instrução break interrompe imediatamente o loop e passa para a próxima instrução após ele. Aqui está um exemplo:

Loops Infinitos e Saída de Loops

php— editable, runs on the server

Neste exemplo, o loop imprime os números de 1 a 10 e depois para. O teste com if combinado com break atua como a condição real de saída. A instrução continue relacionada é diferente: em vez de sair do loop, ela pula o restante da iteração atual e volta diretamente para a verificação da condição.

while vs. do...while

Um loop while verifica sua condição antes de executar o corpo, portanto o corpo pode nunca ser executado. O loop do...while é a sua imagem espelhada: ele verifica a condição depois do corpo, garantindo que o corpo seja executado pelo menos uma vez.

<?php

$i = 100;

// Condition is false from the start — body never runs:
while ($i < 10) {
  echo "while: $i\n";
  $i++;
}

// Body runs once, then the condition is checked:
do {
  echo "do-while: $i\n";
  $i++;
} while ($i < 10);

?>

Saída:

do-while: 100

Use do...while quando a ação deve acontecer antes que você possa saber se deve repeti-la — por exemplo, solicitando uma entrada e repetindo o pedido somente se a entrada for inválida.

Conclusão

O loop while executa um bloco de código enquanto sua condição permanecer true, com a condição verificada antes de cada iteração. Lembre-se das três chaves para usá-lo com segurança: inicialize sua variável de controle antes do loop, escreva uma condição que eventualmente se torne false e atualize essa variável (ou use break) dentro do corpo. Para mais opções de loop, veja a visão geral dos loops PHP, o loop for controlado por contagem, e os operadores de comparação que você usará para construir condições de loop.

Diagrama

graph TD;
  A[While Loop Structure] --> B[Expression Evaluation];
  B --> C{Execute Code};
  C --> B;
  B --> D[False];
  D --> E[End Loop];

Prática

Prática
Quais são as propriedades do loop 'while' em PHP?
Quais são as propriedades do loop 'while' em PHP?
Was this page helpful?