Les boucles d’instructions en PHP
Les boucles sont très utiles en PHP. Ils permettent de répéter ou d’itérer des instructions. Ils sont très souvent utiliser pour les traitements d’affichage : afficher une liste de produits, une liste de membres, une liste de commentaires dans les articles, une liste d’informations selon des critères de recherche, afficher une pagination…
Mais ils peuvent aussi s’utiliser pour des traitements de données, comme la lecture d’enregistrement dans une base de données, la lecture ou le remplissage de tableaux.
Répéter un nombre de fois déterminé
Si le nombre de répétion est connu, utiliser la syntaxe for
<?php
for($i=0;$i<6;$i++){
echo $i;
}
?>
Affichage
012345
Dans la parenthèse, vous devez fournir 3 informations séparées par des point-virgules.
- déclaration d’une ou de plusieurs variables, ici $i fait office de compteur
- conditions pour rester dans la boucle : $i est inférieur à 6
- instruction(s) sur retour : la valeur $i est incrémentée
Sortir d’une boucle
L’opérateur break permet de sortir d’une boucle.
<?php
for($i=0;$i<10;$i++){
if($i==3){
break;
}
echo $i;
}
?>
Affichage
012
Dans cet exemple le 3 ne s’affichera pas puisqu’on quitte la boucle juste avant.
Passer immédiatement à l’itération suivante
Vous pouvez ignorer les instructions sur le retour avec l’instruction continue
<?php
for($i=1;$i<10;$i++){
if($i==3){
continue;
}
echo $i;
}
?>
Affichage
012456789
Dans cet exemple toutes les valeurs entre 1-9 seront affichées sauf le 3.
Répéter un nombre de fois indéterminé
Dans certaine situation, vous ne pouvez pas connaitre à l’avance le nombre total d’instructions à répéter, comme pour l’affichage des membres d’un site de rencontre. La boucle while est plus appropriée dans ce cas.
<?php
$i =0 ;
while ($i <= 120) {
echo $i."<br>";
$i = rand(5, 150);
}
?>
Affichage
12
100
5
105
Dans cet exemple, la fonction rand(), qui est une fonction prédéfinie, permet de choisir un nombre aléatoire entre 5 et 150.
La boucle while va donc afficher des nombres de façon aléatoire tant que ce dernier est inférieur ou égal à 120.