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:
- A
conditioné avaliada antes de cada iteração. - Se for
true, o corpo é executado uma vez. - 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
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 10Um 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
CherryAo 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
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: 100Use 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];