W3docs

La boucle "for" en PHP

Apprenez la boucle PHP "for" : initialisation, condition, incrément — compter, itérer sur un array, imbriquer des boucles, break et continue.

En PHP, l'instruction for est une structure de contrôle qui exécute un bloc de code un nombre de fois connu à l'avance. On l'utilise dès que le nombre d'itérations est fixe et prévisible — afficher les nombres de 1 à 10, construire un tableau HTML à N lignes, ou parcourir un array indexé par position.

Ce chapitre couvre les trois parties d'une boucle for, leur ordre d'exécution, et des modèles pratiques : compter vers le haut et vers le bas, des pas personnalisés, parcourir des arrays, imbriquer des boucles, et les mots-clés break / continue.

Syntaxe

Une boucle for est composée de trois expressions entre parenthèses, séparées par des points-virgules, suivies du corps de la boucle entre accolades :

for (initialization; condition; increment) {
  // code to be executed on each pass
}

Les trois expressions s'exécutent dans un ordre précis :

  1. L'initialisation s'exécute une seule fois, avant le démarrage de la boucle — elle définit généralement un compteur.
  2. La condition est vérifiée avant chaque itération. Tant qu'elle est true, le corps s'exécute ; lorsqu'elle devient false, la boucle s'arrête.
  3. L'incrément s'exécute après chaque itération, juste avant que la condition soit vérifiée à nouveau — il fait généralement avancer le compteur.

Initialisation

L'initialisation définit la valeur de départ du compteur. Elle s'exécute une seule fois au tout début. Pour commencer à compter à 1 :

$counter = 1;

Condition

La condition détermine quand s'arrêter. La boucle continue de s'exécuter tant que la condition est vraie. Pour boucler tant que le compteur est inférieur ou égal à 10 :

$counter <= 10;

Si la condition est false dès la première vérification, le corps ne s'exécute jamais.

Incrément

L'incrément modifie le compteur après chaque passage afin que la boucle se termine. Pour ajouter 1 à chaque fois :

$counter++;

Si l'incrément ne rend jamais la condition fausse, vous obtenez une boucle infinie. Assurez-vous que le compteur progresse vers la condition d'arrêt.

Un exemple de comptage complet

En assemblant les trois parties, cette boucle affiche la valeur de $counter à chaque passage, de 1 à 10 :

php— editable, runs on the server

Le code ci-dessus produit la sortie suivante :

1 2 3 4 5 6 7 8 9 10 

(Sans le . " ", echo afficherait les chiffres sans espace — 12345678910 — car echo n'ajoute rien entre les valeurs.)

Compter à rebours et pas personnalisés

L'incrément est simplement une expression, il peut donc décrémenter ou progresser par pas autres que 1. Pour compter à rebours de 10 à 1, partez de haut, arrêtez-vous à 1, et utilisez $i-- :

<?php

for ($i = 10; $i >= 1; $i--) {
  echo $i . " ";
}

?>

Pour avancer de 2 en 2 (en affichant les nombres pairs jusqu'à 10), utilisez $i += 2 :

<?php

for ($i = 2; $i <= 10; $i += 2) {
  echo $i . " ";   // 2 4 6 8 10
}

?>

Parcourir un array

Une boucle for peut parcourir un array indexé par position. La condition utilise count() pour connaître le nombre d'éléments, et $i est utilisé comme indice du array :

php— editable, runs on the server

Le code ci-dessus produit la sortie suivante :

apple
banana
cherry

Notez que la boucle commence à 0 (les arrays PHP sont indexés à zéro) et que la condition est $i < count($fruits) — on utilise < plutôt que <= car le dernier indice valide est count - 1.

Pour les arrays — en particulier les arrays associatifs dont les clés ne sont pas des entiers séquentiels — la boucle foreach est généralement plus claire et plus sûre qu'une boucle for, car vous n'avez pas à gérer un indice manuellement.

Boucles imbriquées

Vous pouvez placer une boucle for à l'intérieur d'une autre. La boucle interne s'exécute entièrement pour chaque passage de la boucle externe. C'est courant pour les grilles, les tableaux et les sorties de type multiplication :

<?php

for ($row = 1; $row <= 3; $row++) {
  for ($col = 1; $col <= 3; $col++) {
    echo $row * $col . "\t";
  }
  echo "\n";
}

?>

Cela affiche une grille de multiplication 3×3 :

1	2	3	
2	4	6	
3	6	9	

Interrompre et sauter des itérations

Deux mots-clés vous donnent un contrôle plus fin à l'intérieur du corps de la boucle :

  • break arrête la boucle immédiatement et continue avec le code qui la suit.
  • continue saute le reste de l'itération en cours et passe à la suivante (l'incrément s'exécute quand même).
<?php

for ($i = 1; $i <= 10; $i++) {
  if ($i == 4) {
    continue;   // skip 4
  }
  if ($i == 7) {
    break;      // stop entirely at 7
  }
  echo $i . " ";
}

?>

Le code ci-dessus produit la sortie suivante :

1 2 3 5 6 

4 est ignoré par continue, et la boucle s'arrête avant d'afficher 7 à cause de break. Pour en savoir plus, consultez le chapitre break et continue.

Quand utiliser for plutôt qu'une autre boucle

  • Utilisez for lorsque vous connaissez le nombre d'itérations à l'avance, ou lorsque vous avez besoin d'un compteur / indice.
  • Utilisez foreach pour itérer sur les éléments d'un array ou d'un objet sans gérer un indice.
  • Utilisez while lorsque vous bouclez jusqu'à ce qu'une condition change et qu'il n'y a pas de compteur naturel.
  • Utilisez do...while lorsque le corps doit s'exécuter au moins une fois avant que la condition soit vérifiée.

Conclusion

La boucle for est une structure de contrôle essentielle en PHP pour répéter du code un nombre de fois connu. Maîtrisez ses trois parties — initialisation, condition et incrément — et vous pourrez compter vers le haut ou vers le bas, avancer par n'importe quel pas, parcourir des arrays par indice et imbriquer des boucles pour construire des grilles. Pour itérer sur les éléments d'un array, préférez foreach ; pour une répétition indéfinie, tournez-vous vers while.

Pratique

Pratique
En PHP, quelles sont les trois expressions d'une boucle 'for', dans l'ordre ?
En PHP, quelles sont les trois expressions d'une boucle 'for', dans l'ordre ?
Was this page helpful?