Temps de lecture approximative : 11 minutes

Les boucles - PHP

En PHP, comme dans bien d'autres langages de programmation, les boucles sont des éléments clés. Il est essentiel de les maîtriser pour développer efficacement. Que l'on développe un simple site web, une fusée ou un jeu vidéo, on a besoin de boucles.

Les boucles permettent de répéter l'exécution d'une portion de code un certain nombre de fois en fonction d'un test de condition. Tant que ce dernier est vérifié, alors la portion de code s'exécute. Pour une exécution d'une portion de code, on parle d'une itération de la boucle. Quel que soit le type de boucles utilisé, il sera nécessaire d'employer une condition pour mettre fin à la boucle.

En PHP, il existe 4 boucles différentes. Elles remplissent la même finalité mais comportent des différences.

  • while
  • do...while
  • for
  • foreach

Une partie explicative est dédiée à chaque boucle.

Boucle while

L'instruction while pourrait être traduite en français par « tant que ». Si on vulgarise l'utilisation de cette boucle, on peut dire que cette dernière va exécuter la même portion de code tant que la condition est vérifiée. Ci-après un exemple avec les deux syntaxes possibles.

PHP
<?php
   $z = 0;
   while($z < 10) {
      echo 'La variable $z a '.$z.' comme valeur.<br />';
      $z++;
   }
?>
Résultat
La variable $z a 0 comme valeur.
La variable $z a 1 comme valeur.
La variable $z a 2 comme valeur.
La variable $z a 3 comme valeur.
La variable $z a 4 comme valeur.
La variable $z a 5 comme valeur.
La variable $z a 6 comme valeur.
La variable $z a 7 comme valeur.
La variable $z a 8 comme valeur.
La variable $z a 9 comme valeur.
PHP
<?php
   $z = 0;
   while($z < 10) :
      echo 'La variable $z a '.$z.' comme valeur.<br />';
      $z++;
   endwhile;
?>
Résultat
La variable $z a 0 comme valeur.
La variable $z a 1 comme valeur.
La variable $z a 2 comme valeur.
La variable $z a 3 comme valeur.
La variable $z a 4 comme valeur.
La variable $z a 5 comme valeur.
La variable $z a 6 comme valeur.
La variable $z a 7 comme valeur.
La variable $z a 8 comme valeur.
La variable $z a 9 comme valeur.

L'exemple démarre avec la déclaration de la variable $z avec une valeur de zéro. Si vous avez suivi les chapitres précédents, vous ne devez pour le moment, pas avoir de surprise jusqu'ici. La boucle va donc exécuter la portion de code entre les accolades { et } tant que la condition est vérifiée.

On demande donc à notre boucle while d'afficher une chaîne de caractères et d'incrémenter $z, tant que $z est strictement inférieure à 10. L'étape d'incrémentation de la variable $z est indispensable dans notre cas, car sinon le test de condition serait éternellement non vérifié, et la boucle ne s'arrêterait jamais. Si c'est le cas, on appelle ça une boucle infinie.

Les deux syntaxes produisent bien évidemment le même résultat.

Boucle do...while

L'instruction do...while pourrait être traduite en français par « faire... tant que ». La boucle do...while est très proche de la boucle while. La différence est que la boucle do...while commence par exécuter sa portion de code avant de vérifier sa condition alors que la boucle while fait l'inverse. Un exemple pour comparer les deux et tout deviendra plus clair.

PHP
<?php
   $z = 2;
   do {
      echo 'La variable $z a '.$z.' comme valeur.';
   } while($z < 1);
?>
Résultat
La variable $z a 2 comme valeur.
PHP
<?php
   $z = 2;
   while($z < 1) {
      echo 'La variable $z a '.$z.' comme valeur.';
   }
?>
Résultat

Dans l'exemple de gauche avec do...while, la boucle commence par exécuter une fois sa portion de code. La chaîne de caractères s'affiche puis le test de condition s'effectue. En l'occurence la variable $z n'a pas une valeur strictement inférieure à 1, la boucle s'arrête donc.

Tandis que dans l'exemple de droite avec while, la boucle commence par évaluer son test de condition ; rien ne s'affiche car la variable $z n'a pas une valeur strictement inférieure à 1.

Boucle for

Comme énoncé précédemment, toutes les boucles ont la même finalité : répéter une portion de code en boucle. Nous avons vu précédemment les boucles while et do...while. Elles produisent le même résultat mais se différencient l'une de l'autre par leur processus propre. La boucle for est un autre type de boucle. Elle est largement utilisée car elle a des avantages indéniables, mais a une syntaxe assez particulière, surtout pour les débutants. Tout d'abord, l'instruction for pourrait être traduite en français par « pour ». Reprenons le même exemple qu'avec la boucle while pour mettre en évidence les différences. En PHP, la boucle for a deux syntaxes possibles.

PHP
<?php
   for($z = 0;$z < 10;$z++) {
      echo 'La variable $z a '.$z.' comme valeur.<br />';
   }
?>
Résultat
La variable $z a 0 comme valeur.
La variable $z a 1 comme valeur.
La variable $z a 2 comme valeur.
La variable $z a 3 comme valeur.
La variable $z a 4 comme valeur.
La variable $z a 5 comme valeur.
La variable $z a 6 comme valeur.
La variable $z a 7 comme valeur.
La variable $z a 8 comme valeur.
La variable $z a 9 comme valeur.
PHP
<?php
   for($z = 0;$z < 10;$z++) :
      echo 'La variable $z a '.$z.' comme valeur.<br />';
   endfor;
?>
Résultat
La variable $z a 0 comme valeur.
La variable $z a 1 comme valeur.
La variable $z a 2 comme valeur.
La variable $z a 3 comme valeur.
La variable $z a 4 comme valeur.
La variable $z a 5 comme valeur.
La variable $z a 6 comme valeur.
La variable $z a 7 comme valeur.
La variable $z a 8 comme valeur.
La variable $z a 9 comme valeur.

Alors que la boucle while ne prend qu'un test de condition entre ses parenthèses, la boucle for en prend 3 pour avoir une syntaxe plus condensée. Les 3 éléments de la boucle for sont les suivants :

  • Une déclaration de variable ;
  • Un test de condition ;
  • Une incrémentaiton de variable.

Le premier élément de la boucle for correspond tout simplement à la déclaration de la variable $z. Alors que dans la boucle while, cette déclaration était bel et bien en dehors de la boucle, avec la boucle for c'est le premier élément à préciser.

Pas de surprise pour le deuxième élément, la boucle for a besoin comme toutes les boucles d'un test de condition.

Le dernier élément correspond à une incrémentation ou une décrémentation de variable. En l'occurence, on incrémente la variable $z. Ce dernier élément était à l'intérieur de la boucle while.

Les éléments sont séparés par des points virgules ;. Au final, le résultat est le même mais la syntaxe est plus condensée.

Boucle foreach

La boucle foreach est un autre type de boucle. Elle est utile pour les variables de type array (tableaux). Étant donné que nous n'avons pas encore abordé les tableaux, nous aborderons cette boucle en même temps que cette thématique dans le prochain chapitre.

Conclusion

Illustration d'un développeur qui maîtrise les boucles en PHP
Les boucles en PHP, two fingers in the nose !

Les boucles permettent donc de répéter une portion de code en boucle. En PHP, il y en a 4 différentes ; while, do...while, for et foreach. Elles se démarquent les unes des autres par des spécificités. Ce chapitre est très important car les boucles sont essentielles pour développer. Qu'on développe en PHP ou dans un autre langage de programmation, elles sont incontournables. Si tout est clair, vous pouvez vous entraîner avec les exercices, sinon prenez le temps de relire autant de fois que nécessaire le cours pour éclaircir les zones d'ombres.