Temps de lecture approximative : 11 minutes
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.
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
$z = 0;
while($z < 10) {
echo 'La variable $z a '.$z.' comme valeur.<br />';
$z++;
}
?>
Résultat
<?php
$z = 0;
while($z < 10) :
echo 'La variable $z a '.$z.' comme valeur.<br />';
$z++;
endwhile;
?>
Résultat
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.
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
$z = 2;
do {
echo 'La variable $z a '.$z.' comme valeur.';
} while($z < 1);
?>
Résultat
<?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.
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
for($z = 0;$z < 10;$z++) {
echo 'La variable $z a '.$z.' comme valeur.<br />';
}
?>
Résultat
<?php
for($z = 0;$z < 10;$z++) :
echo 'La variable $z a '.$z.' comme valeur.<br />';
endfor;
?>
Résultat
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 :
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.
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.
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.