Les Boucles
1 - Définition
Une structure répétitive, également appelée structure itérative ou encore boucle, permet de répéter plusieurs fois l’exécution d’une ou plusieurs instructions. Le nombre de répétitions peut :
- être connu à l’avance.
- dépendre de l’évaluation d’une condition.
À chaque répétition, les instructions contenues dans la boucle sont exécutées. C’est ce qu’on appelle un tour de boucle ou encore une itération.
2 - La boucle while
La boucle while
permet de répéter des instructions tant qu’une condition est vérifiée.
<?php
$i = 0;
while($i < 10) {
...
$i++;
}
?>
Avant chaque tour de boucle, la condition, associée au while
, est évaluée : Si elle est vraie, les instructions du bloc while
sont exécutées. Ensuite, la ligne du while
est à nouveau exécutée et la condition vérifiée. Si elle est fausse, les instructions du bloc ne sont pas exécutées et le programme continue juste après le bloc while
.
Attention
Il faut absolument que la condition de la boucle while
puisse devenir fausse. Dans le cas contraire, on obtient une boucle infinie qui ne s’arrête jamais.
3 - La boucle for
La boucle for permet de répéter un bloc d’instructions un nombre défini de fois.
<?php
for($i = 0; $i < 10; $i++) {
...
}
?>
Voici son fonctionnement :
- L’initialisation
$i = 0
se produit une seule fois, au début de l’exécution. - La condition
$i < 10
évaluée avant chaque tour de boucle. Si elle est vraie, un nouveau tour de boucle est effectué. Sinon, la boucle est terminée. - L’étape d’incrémentation $i++ est réalisée après chaque tour de boucle.
Dans notre exemple la boucle fera 10
tours et $i
prendra les valeurs allant de 0 à 9.
Les boucles for peuvent être combinées avec d’autres instructions telles que des instructions if
pour effectuer des tâches spécifiques à chaque itération.
La variable utilisée dans l’initialisation, la condition et l’étape est appelée le compteur de la boucle. Par convention, elle est souvent nommée i
.
4 - La boucle foreach
La boucle foreach
est principalement utilisée pour parcourir un tableau (associatif ou non).
<?php
$langages = array('C#', 'PHP', 'HTML');
foreach($langages as $monlangage) {
echo"$monlangage<br>";
}
?>
Attention
Ne pas confondre la variable qui représente le tableau (ici $langages
, écrite au pluriel) et la variable qui représente l’élément courant dans la boucle (ici $monlangage
).
<?php
$client = array(
"Nom" => "Annie ZETTE",
"Ville" => "Lyon",
"Courriel" => "annie@zette.fr"
);
?>
<ul>
<?php foreach($client as $cle => $valeur) {?>
` `<li><?php echo $cle . ' : ' . $valeur;?></li>
<?php}?>
</ul>