W3docs

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 :

  1. La condition est évaluée avant chaque itération.
  2. Si elle est true, le corps s'exécute une fois.
  3. 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

php— editable, runs on the server

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 10

Un 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
Cherry

Pour 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

php— editable, runs on the server

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: 100

Utilisez 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];

Pratique

Pratique
Quelles sont les propriétés de la boucle 'while' en PHP ?
Quelles sont les propriétés de la boucle 'while' en PHP ?
Was this page helpful?