Une boucle en informatique est un morceau de code qui se répète jusqu’à ce qu’une certaine condition soit remplie. C’est une façon de traiter une série de données, de parcourir des tableaux, de faire des actions répétitives et de prendre des décisions basées sur des critères. Il existe plusieurs types de boucles, telles que la boucle for, la boucle while et la boucle do-while. Les boucles sont très utiles pour la programmation et sont souvent utilisées pour automatiser des tâches qui se répètent.
La boucle while
L’objectif de la boucle est donc de répéter une action sans avoir à la réécrire à chaque itération.
Le principe de la boucle while (« tant que » en français) est assez simple et nous permettra de bien appréhender le principe fondamental des boucles.
<?php
$n = 0;
while($n < 5){
echo '<p>coucou</p>';
$n++;
}
?>
Dans cet exemple :
- Nous définissons une variable de référence
$nde type INT dont la valeur initiale est 0 avant la création de la boucle (ligne 2) - Nous déclenchons la notre boucle en fonction d’un calculateur d’itération. Ici, tant que
$nest inférieur à 5, le code affiche « coucou »(ligne 4) - Une fois l’affichage effectué, la valeur en cours de
$nsera augmenté de 1 (nous parlerons d’incrémentation) (ligne 6) - La boucle est relancée si la valeur de
$nreste inférieur à 5, sinon, elle s’arrête.
Le résultat obtenu sera donc le suivant :
coucou
coucou
coucou
coucou
coucou
La boucle for
Dans une boucle for (« pour » en français), les choses fonctionnent de façon assez similaire. Nous allons nous baser sur une valeur initiale, définir le nombre de fois que nous souhaitons répéter notre action et demander au programme d’arrêter la répétition une fois ce nombre atteint tout ça dès le lancement de la boucle.
<?php
for($n == 0; $n < 5; $n++){
echo 'coucou';
}
?>
Dans l’exemple ci-dessus :
- nous définissons une variable
$nde type INT dont la valeur initiale est 0. - Tant que
$nest inférieur à 5, le code affichera « coucou », - une fois cette affichage effectué, la valeur en cours de
$nsera augmenté de 1 (nous parlerons d’incrémentation) jusqu’à arriver à 5.
Utiliser la boucle for
Passons maintenant à un exemple plus concret en nous appuyant sur un tableau de données.
<?php
$etudiants = array( "Prune", "Céliane", "Kassandre", "Erina", "Laura", "Manon", "Mattéo", "Quentin", "Inès", "Clarisse", "Yasmina", "Yanis", "Thibaut", "Pauline", "Andréa", "Tom" );
$nb_etudiants = count( $etudiants );
for ( $e == 0; $e < $nb_etudiants; $e++ ) {
echo '<p>' . $etudiants[ $e ] . '</p>';
}
?>
Dans l’exemple ci-dessus, nous programmons l’écriture d’une liste d’étudiants sous forme de paragraphes :
- Nous commençons par créer un tableau PHP regroupant l’ensemble d’une liste d’étudiants dans la variable $etudiants (ligne 2).
- Nous récupérons le nombre d’étudiants de la liste et concevons ce nombre dans la variable $nb_etudiants (ligne 4).
- Une fois ces données définies, nous lançons une boucle dont la valeur initiale $e est égale à 0, tant que la valeur de
$eest inférieur au nombre d’entrées du tableau, nous répétons notre boucle (ligne 6). - À chaque itération de la boucle, nous affichons un paragraphe contenant l’entrée correspondante à la valeur de
$econtenue dans le tableau$etudiants(ligne 7).
La boucle foreach
Un autre type de boucle est encore possible, la boucle foreach (« pour chaque » en français). Ce dernier type de boucle est essentiellement dédié au traitement d’informations issues de tableau ou d’objets.
Le principe de la boucle foreach en PHP est très simple et se défini en suivant les étapes suivantes :
- Définir un tableau PHP.
- Définir un pointeur qui sera utilisé pour parcourir chaque élément du tableau.
- Définir une variable pour chaque élément qui sera utilisée pour stocker la valeur courante de chaque élément pendant chaque itération de la boucle.
- Enfin, vous devez écrire le code que vous souhaitez exécuter pour chaque élément. Ce code sera exécuté pour chaque élément jusqu’à ce que tous les éléments aient été traités.
<?php
$fruits = array("pomme", "banane", "orange", "mangue");
foreach ($fruits as $le_fruit) {
echo "<p>".$le_fruit . "</p>";
}
?>
Dans cet exemple, nous avons procédé selon les étape attendues
- Nous avons défini un tableau
$fruitscontenant les éléments que nous souhaitons parcourir. - Nous avons également défini un pointeur en utilisant la clause
asdans la boucleforeachet défini une variable$le_fruitqui sera utilisée pour stocker la valeur courante de chaque élément pendant chaque itération de la boucle. - Enfin, nous avons écrit le code que nous souhaitons exécuter pour chaque élément, à savoir écrire à l’intérieur d’un élément HTML « paragraphe » la valeur courante de chaque élément.
- Les boucles foreach sont notamment utilisées par le CMS WordPress pour gérer l’affichage de contenu des pages.
En bonus : la boucle foreach appliquée à un objet PHP
Pour les plus curieux d’entre-vous, voici une utilisation plus complexe de la boucle foreach. Il s’agit du principe de traitement des données sous forme d’objet PHP affiché dans une page générée par le CMS WordPress.
Un objet est un type de données complexe qui représente une instance de classe. Une classe est un modèle qui définit les propriétés et les méthodes associées à un objet.
Lorsque vous parcourez un objet dans une boucle foreach, vous pouvez accéder à ses propriétés et méthodes pour les utiliser dans votre code. Il est important de noter que vous ne pouvez pas utiliser la boucle foreach pour parcourir tous les objets de la même manière. En général, vous devez spécifier comment accéder à chaque propriété ou méthode en utilisant un pointeur.
Voici un exemple simple d’utilisation de la boucle foreach avec un objet en PHP :
<?php
class Fruit {
public $name;
public $color;
public function __construct($name, $color) {
$this->name = $name;
$this->color = $color;
}
}
$fruits = array(
new Fruit("pomme", "verte"),
new Fruit("banane", "jaune"),
new Fruit("orange", "orange"),
new Fruit("mangue", "verte")
);
foreach ($fruits as $fruit) {
echo "<p>".$fruit->name . " est " . $fruit->color . "</p>";
}
?>
- Nous avons commencé par définir une classe
Fruitavec deux propriétés,$nameet$color, ainsi qu’un constructeur qui initialise ces propriétés lorsque l’objet est créé. - Nous avons ensuite créé un tableau d’objets
$fruitsen utilisant la classeFruit. - Enfin, nous avons utilisé la boucle
foreachpour parcourir chaque objet dans le tableau et accéder à ses propriétés, à savoir$nameet$color, pour les utiliser dans notre code.