Leçon 5 : Les boucles
Dans PHP, il est possible de gérer l'exécution des scripts à l'aide de différentes structures de contrôle. Dans cette leçon, nous verrons les boucles. Les boucles peuvent servir à répéter des parties d'un script, un nombre déterminé de fois ou jusqu'à ce qu'une certaine condition est réalisée.
Les boucles "while"
La syntaxe d'une boucle while est la suivante :
while (condition) { Instruction }
La syntaxe est presque directement traduisible en français : faire quelque chose tant (while) qu'une condition est vérifiée.
Voyons un exemple simple :
<html> <head> <title>Loops</title> </head> <body> <?php $x = 1; while ($x <= 50) { echo "<p>This text is repeated 50 times</p>"; $x = $x + 1; } ?> </body> </html>
Dans l'exemple précédent, on utilise une variable nommée "$x". Ainsi que vous le constatez, les variables en PHP commencent toujours par le caractère "$". Au début, il arrive souvent qu'on l'oublie, mais c'est absolument nécessaire sinon le script ne fonctionnerait pas.
Hormis cela, l'exemple est parlant. La variable $x est d'abord initialisée à 1. Puis la boucle demande au serveur de répéter le texte tant (while) que la valeur de $x est inférieure ou égale à 50. À chaque itération, la valeur de $x est incrémentée de 1.
Les boucles "for"
Un autre type de boucle est réalisé avec for, de la forme suivante :
for (initialisation; condition; pas) { Instruction }
L'instruction sera répétée tant que les membres "initialisation" + "pas" satisferont au membre "condition". Si c'est trop abstrait, voyez l'exemple suivant :
<html> <head> <title>Loops</title> </head> <body> <?php for ($x=0; $x<=50; $x=$x+5) { echo '<p>variable $x is now = ' . $x . '</p>'; } ?> </body> </html>
Dans l'exemple précédent, la valeur de $x croît de 5 à chaque itération. La boucle poursuivra tant que la valeur de $x sera inférieure ou égale à 50. Notez que la valeur $x fait également partie de la phrase.
Voici un autre exemple :
<html> <head> <title>Loops</title> </head> <body> <?php for ($ x=1; $x<=6; $x=$x+1) { echo "<h" . $x . ">Heading levels</h" . $x . ">"; } ?> </body> </html>
Vous y êtes ? D'abord on fixe la valeur de $x à 1. Puis, à chaque itération, on écrit une balise d'entête dont le niveau est égal à la valeur de $x (h1, h2, h3, etc.) jusqu'à ce que $x vale 6.
Les boucles dans des boucles
En principes, il n'y a aucune limite à l'utilisation des boucles. Par exemple, on peut facilement mettre des boucles à l'intérieur d'autres boucles et créer de ce fait des répétitions multiples.
Mais faites attention ! Plus les scripts sont compliqués et extensifs, plus PHP ralentit. Ainsi, l'exemple suivant où, au moyen de trois boucles, on peut écrire 16 millions de couleurs !
Pour ne pas ralentir trop la page, nous avons réduit considérablement le nombre en fixant le pas à 30, limitant ainsi le nombre de couleurs à 512.
<html> <head> <title>Loops </title> </head> <body> <?php for ($intRed=0; $intRed<=255; $intRed=$intRed+30) { for ($intGreen=0; $intGreen<=255; $intGreen=$intGreen+30) { for ($intBlue=0; $intBlue<=255; $intBlue=$intBlue+30) { $StrColor = "rgb(" . $IntRed . "," . $IntGreen . "," . $IntBlue . ")"; echo "<span style='color:" . $StrColor . "'>" . $ StrColor . "</span>"; } } } ?> </body> </html>
Dans cet exemple, chacune des trois couleurs primaires (rouge, vert, bleu) peut avoir une valeur entre 0 et 255. Toute combinaison des trois couleurs crée une couleur, telle que rgb(255, 255, 255). Ce code de couleur est utilisé comme couleur dans un élément <span>.
Les boucles se révèleront très utiles par la suite, quand vous en saurez un peu plus. Dès lors que vous comprenez le principe de la boucle, vous pouvez vous avancer à la leçon suivante, où nous nous intéresserons aux conditions.