Les boucles permettent de répéter un bloc de code tant qu'une condition est remplie, ou de parcourir les éléments d'un tableau. En PHP, il en existe trois : le while, le for, et le foreach. Pour aller plus loin, on pourra consulter la documentation officielle.
La boucle while
Le while (tant que) répète un bloc de code tant qu'une condition reste vraie. C'est la boucle à utiliser quand on ne sait pas à l'avance combien de fois on va itérer.
Exemple : on demande à l'utilisateur de deviner un chiffre et on recommence jusqu'à ce qu'il trouve.
Le while vérifie la condition avant chaque itération. Ici, tant que $chiffre est différent de 10, on redemande une valeur. Dès que l'utilisateur tape 10, on sort de la boucle.
Comme pour le switch, on peut sortir d'une boucle de force avec un break. Une variante courante consiste à écrire un while (true) et à gérer la sortie manuellement :
Cette approche peut être plus naturelle quand la condition de sortie se trouve au milieu de la logique du bloc.
La boucle for
Le for est la boucle à privilégier quand on connaît à l'avance le nombre d'itérations. Sa syntaxe regroupe en une seule ligne trois informations : la valeur initiale du compteur, la condition de continuation, et l'évolution du compteur.
$i = 0: on initialise le compteur à 0$i < 10: on continue tant que$iest strictement inférieur à 10$i++: on incrémente$ide 1 à chaque tour
On peut bien sûr incrémenter par pas différents. $i += 2 permet par exemple d'aller de 2 en 2, et $i -= 1 de décrémenter.
Le for peut aussi servir à parcourir un tableau si on connaît sa taille :
Mais cette approche oblige à connaître la taille du tableau à l'avance et n'est pas très lisible. C'est là qu'intervient le foreach.
La boucle foreach
Le foreach est propre à PHP et est conçu spécifiquement pour parcourir des tableaux. On n'a pas besoin de gérer un compteur ni de connaître la taille du tableau.
À chaque itération, $note prend la valeur de l'élément courant du tableau. C'est beaucoup plus lisible que l'équivalent avec for.
Récupérer la clé
Si le tableau a des clés nommées (tableau associatif), on peut les récupérer en même temps que la valeur avec la syntaxe clé => valeur :
Cette syntaxe fonctionne aussi avec les tableaux indexés numériquement, auquel cas la clé sera simplement l'index (0, 1, 2...).
Boucles imbriquées
On peut tout à fait imbriquer des boucles pour parcourir des structures de données plus complexes. Par exemple, pour afficher la liste des élèves par classe :
La première boucle parcourt les classes, la seconde parcourt les élèves de chaque classe.
Résumé
| Boucle | Cas d'usage |
|---|---|
while |
Nombre d'itérations inconnu à l'avance |
for |
Nombre d'itérations connu, compteur numérique |
foreach |
Parcours d'un tableau |