La boucle while en PHP
Découvrez la boucle while en PHP : syntaxe, condition d'arrêt, boucles infinies, break et différences avec do...while.
La boucle while en PHP répète un bloc de code tant qu' une condition donnée reste true. C'est le bon outil quand on ne sait pas à l'avance combien d'itérations sont nécessaires — par exemple, lire des lignes d'une base de données jusqu'à ce qu'il n'en reste plus, ou demander une saisie jusqu'à ce qu'elle soit valide. Quand on connaît le nombre d'itérations à l'avance, une boucle for est généralement plus claire.
Cet article couvre la syntaxe de la boucle while, la façon dont sa condition est évaluée, la forme alternative endwhile, les boucles infinies et comment en sortir, ainsi que les différences entre while et la boucle do...while.
La structure de la boucle While
La structure de base de la boucle while en PHP est la suivante :
Syntaxe de la boucle while en PHP
while (condition) {
// code to be executed
}La condition est toute expression que PHP évalue en booléen (true ou false). La boucle fonctionne en trois étapes :
- La
conditionest évaluée avant chaque itération. - Si elle est
true, le corps s'exécute une fois. - PHP revient à l'étape 1 et réévalue la condition.
C'est important : comme le test se produit en premier, le corps s'exécute zéro fois si la condition est false dès le départ. Quelque chose à l'intérieur de la boucle (ou la condition elle-même) doit finalement rendre la condition false, sinon la boucle s'exécute indéfiniment — voir Boucles infinies ci-dessous.
Syntaxe alternative endwhile
PHP propose également une forme avec deux-points et endwhile, qui est pratique quand on mélange des boucles avec du HTML dans un template :
<?php $i = 1; ?>
<ul>
<?php while ($i <= 3): ?>
<li>Item <?php echo $i; ?></li>
<?php $i++; ?>
<?php endwhile; ?>
</ul>Les deux formes se comportent de manière identique ; choisissez celle qui est la plus lisible dans le contexte.
Exemple d'utilisation de la boucle While
Considérons un exemple d'utilisation de la boucle while pour afficher les nombres de 1 à 10. Voici le code :
Exemple PHP d'utilisation de la boucle While
Dans cet exemple, on initialise une variable $i à 1 et on définit la condition à $i <= 10. La boucle continue à s'exécuter tant que $i est inférieur ou égal à 10. À chaque itération, on affiche la valeur de $i et on l'incrémente de 1. Dès que $i devient 11, la condition est false et la boucle se termine. La sortie du code est :
1 2 3 4 5 6 7 8 9 10Un exemple pratique : parcourir un tableau
while est souvent utilisé avec un compteur pour parcourir un tableau indexé. La condition arrête la boucle à la longueur du tableau, afin de ne jamais lire au-delà de la fin :
<?php
$fruits = ["Apple", "Banana", "Cherry"];
$i = 0;
while ($i < count($fruits)) {
echo $fruits[$i] . "\n";
$i++;
}
?>Cela affiche chaque fruit sur sa propre ligne :
Apple
Banana
CherryPour itérer sur les éléments d'un tableau comme ici, une boucle foreach est généralement le choix le plus propre — elle supprime entièrement le compteur manuel. Utilisez while quand le point d'arrêt dépend d'autre chose qu'une longueur connue (par exemple, des données encore disponibles).
Boucles infinies et sortie des boucles
Il est possible de créer une boucle infinie en utilisant une expression qui s'évalue toujours à true dans la condition de la boucle while. Par exemple :
Syntaxe d'une boucle while infinie en PHP
while (true) {
// code to be executed
}Dans ce cas, il est nécessaire d'utiliser l'instruction break pour quitter la boucle lorsqu'une certaine condition est remplie. L'instruction break arrête immédiatement la boucle et passe à l'instruction suivante après la boucle. Voici un exemple :
Boucles infinies et sortie des boucles
Dans cet exemple, la boucle affiche les nombres de 1 à 10 puis s'arrête. Le test if combiné avec break agit comme la vraie condition de sortie. L'instruction continue associée est différente : au lieu de quitter la boucle, elle saute le reste de l'itération courante et revient directement au test de la condition.
while vs. do...while
Une boucle while vérifie sa condition avant d'exécuter le corps, donc le corps peut ne jamais s'exécuter. La boucle do...while est son image miroir : elle vérifie la condition après le corps, ce qui garantit que le corps s'exécute au moins une fois.
<?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);
?>Sortie :
do-while: 100Utilisez do...while quand l'action doit se produire avant de savoir s'il faut la répéter — par exemple, demander une saisie et ne la redemander que si elle était invalide.
Conclusion
La boucle while exécute un bloc de code tant que sa condition reste true, avec la condition vérifiée avant chaque itération. Retenez les trois points clés pour l'utiliser en toute sécurité : initialisez votre variable de contrôle avant la boucle, écrivez une condition qui deviendra éventuellement false, et mettez à jour cette variable (ou utilisez break) à l'intérieur du corps. Pour plus d'options de boucles, consultez l'aperçu des boucles PHP, la boucle for contrôlée par un compteur, et les opérateurs de comparaison que vous utiliserez pour construire des conditions de boucle.
Diagramme
graph TD;
A[While Loop Structure] --> B[Expression Evaluation];
B --> C{Execute Code};
C --> B;
B --> D[False];
D --> E[End Loop];