Les boucles PHP
Nous aurons souvent besoin d'éxécuter des instructions plusieurs fois. Dans ce cas nous utiliserons des structures de boucle dont les principales sont :
- la boucle while (tant que)
- la boucle for (pour)
La boucle While
Exemple :
<?php
while (condition)
{
// Actions à exécuter ici
}
?>
«while» signifie «tant que». Les actions placées dans le bloc d'instruction seront éxécutées tant que la condition est vérifiée.
Un exemple concret :
<?php
$count = 1;
while ($count <= 10)
{
echo $count." ";
$count = $count + 1;
}
?>
L'expression ci-dessus pourrait être traduite ainsi :
«Tant que ma variable $count est inférieure ou égale à 10, alors écrire $count suivi d'un espace.»
L'instruction $count = $count + 1; permet d'ajouter 1 à $count à chaque passage dans la boucle. On dit que c'est une incrémentation. Sans cette incrémentation, la boucle continuerai à l'infini ou jusqu'à ce que le serveur renvoie une erreur.
Ce qui donne dans le navigateur :
La boucle For
Regardons à nouveau l'exemple précédent :
<?php
$count = 1; // <= initialisation
while ($count <= 10) // <= condition
{
echo $count." ";
$count = $count + 1; // <= incrementation
}
?>
On aura très souvent besoin avec la boucle «while» de 3 types d'instructions : l'initialisation, la condition et l'incrementation. La boucle «for» propose de regrouper dès le départ ces 3 instructions.
«for» signifie «pour». Comme pour le «while», les actions placées dans le bloc d'instruction seront éxécutées tant que la condition est vérifiée.
Exemple
<?php
for (initialisation; condition; incrementation)
{
// Actions à exécuter ici
}
?>
Un exemple concret :
<?php
for ($i=0; $i<=10; $i=$i+1)
{
echo $i." ";
}
?>
L'expression ci-dessus pourrait être traduite ainsi :
«Pour $i égale à 0, tant que $i est inférieure ou égale à 10, et en ajoutant 1 à $i à chaque tour, écrire $i suivi d'un espace.»
Ce qui donne dans le navigateur le même résultat que notre première boucle while :
Notez que l'on peut ajouter ou soustraire n'importe quel nombre en guise d'incrémentation :
<?php
for ($i=100; $i>0; $i=$i-2)
{
echo $i." ";
}
?>
Ce qui donne dans le navigateur :