Les Boucles en PHP

Découvrez comment répéter des opérations avec les différents types de boucles PHP pour un code plus efficace

Introduction aux boucles

Les boucles sont des structures de contrôle qui permettent d'exécuter un bloc de code plusieurs fois. Elles sont particulièrement utiles pour traiter des ensembles de données comme les tableaux et pour automatiser des tâches répétitives.

À quoi servent les boucles ?
  • Répéter des opérations sur des collections de données
  • Automatiser des tâches répétitives
  • Parcourir des tableaux ou des objets
  • Exécuter un bloc de code jusqu'à ce qu'une condition soit remplie

La boucle while

La boucle while exécute un bloc de code tant qu'une condition spécifiée est vraie.

Syntaxe de base
while (condition) {
    // Code à exécuter
    // tant que la condition est vraie
}
Exemple simple
$i = 1;
while ($i <= 5) {
    echo "Itération $i<br>";
    $i++;
}

Résultat :

Itération 1
Itération 2
Itération 3
Itération 4
Itération 5
Cas d'utilisation

La boucle while est idéale quand :

  • Le nombre d'itérations n'est pas connu à l'avance
  • On dépend d'une condition externe (comme une saisie utilisateur)
  • On traite des données jusqu'à atteindre une condition d'arrêt
Attention ! Assurez-vous toujours que la condition de votre boucle while finira par devenir fausse, sinon vous créerez une boucle infinie qui pourrait bloquer votre script.

La boucle do-while

La boucle do-while exécute un bloc de code au moins une fois, puis continue tant qu'une condition est vraie.

Syntaxe de base
do {
    // Code à exécuter au moins une fois
    // et tant que la condition est vraie
} while (condition);
Exemple standard
$j = 1;
do {
    echo "Itération $j<br>";
    $j++;
} while ($j <= 5);

Résultat :

Itération 1
Itération 2
Itération 3
Itération 4
Itération 5
Exécution assurée
$h = 1;
do {
    echo "Itération $h<br>";
    $h++;
} while ($h <= 0);

Résultat (s'exécute une fois même si condition fausse) :

Itération 1
Conseil : Utilisez do-while lorsque vous voulez garantir qu'un bloc de code s'exécute au moins une fois avant de vérifier la condition.

La boucle for

La boucle for est utilisée pour exécuter un bloc de code un nombre spécifique de fois. Elle est idéale quand vous connaissez à l'avance le nombre d'itérations.

Syntaxe de base
for (initialisation; condition; incrémentation) {
    // Code à exécuter à chaque itération
}

Où :

  • initialisation : expression exécutée avant la première itération
  • condition : évaluée à chaque itération, la boucle continue si vraie
  • incrémentation : exécutée après chaque itération
Exemple simple
for ($k = 1; $k <= 5; $k++) {
    echo "Itération $k<br>";
}

Résultat :

Itération 1
Itération 2
Itération 3
Itération 4
Itération 5

Contrôle du flux avec break et continue

Utilisation de break
for ($k = 1; $k <= 5; $k++) {
    echo "Itération $k<br>";
    if ($k == 3) {
        echo "On a atteint l'itération 3, on sort de la boucle.<br>";
        break; // Sort de la boucle
    }
}

Résultat :

Itération 1
Itération 2
Itération 3
On a atteint l'itération 3, on sort de la boucle.
Utilisation de continue
for ($l = 1; $l <= 5; $l++) {
    if ($l == 3) {
        echo "On saute l'itération 3.<br>";
        continue; // Saute l'itération
    }
    echo "Itération $l<br>";
}

Résultat :

Itération 1
Itération 2
On saute l'itération 3.
Itération 4
Itération 5
Quand utiliser la boucle for :
  • Quand vous connaissez à l'avance le nombre d'itérations
  • Pour parcourir des tableaux avec un index numérique
  • Pour exécuter un code un nombre précis de fois

La boucle foreach

La boucle foreach est spécialement conçue pour itérer sur les éléments d'un tableau ou d'un objet. C'est la méthode la plus simple et la plus lisible pour parcourir des collections en PHP.

Syntaxe de base (valeurs)
foreach ($tableau as $valeur) {
    // Code utilisant $valeur
}
Syntaxe avec clé et valeur
foreach ($tableau as $cle => $valeur) {
    // Code utilisant $cle et $valeur
}
Exemple simple
$fruits = ["Pomme", "Banane", "Orange"];
foreach ($fruits as $fruit) {
    echo "Fruit: $fruit<br>";
}

Résultat :

Fruit: Pomme
Fruit: Banane
Fruit: Orange
Avec tableau associatif
$personnes = [
    "Alice" => 25,
    "Bob" => 30,
    "Charlie" => 35
];
foreach ($personnes as $nom => $age) {
    echo "$nom a $age ans.<br>";
}

Résultat :

Alice a 25 ans.
Bob a 30 ans.
Charlie a 35 ans.
Conseil : La boucle foreach est généralement plus rapide et plus lisible que d'autres méthodes pour parcourir des tableaux en PHP. C'est la méthode recommandée pour la plupart des cas d'utilisation.

Comparaison des boucles

Type de boucle Cas d'utilisation idéal Avantages Inconvénients
while Quand le nombre d'itérations n'est pas connu à l'avance Simple, flexible Risque de boucle infinie si mal conçue
do-while Quand vous voulez exécuter le code au moins une fois Garantit au moins une exécution Moins couramment utilisée
for Quand le nombre d'itérations est connu Structure compacte, contrôle précis Peut être moins lisible pour les débutants
foreach Pour parcourir des tableaux et des objets Très lisible, spécialement conçue pour les collections Moins flexible pour les manipulations d'index

Exercices pratiques

Explorez ces exemples pratiques pour maîtriser les différentes boucles en PHP.

Foreach avec tableau simple
$nombres = range(1, 10);
foreach ($nombres as $nombre) {
    echo "Nombre: $nombre<br>";
}

Résultat :

Nombre: 1
Nombre: 2
Nombre: 3
Nombre: 4
Nombre: 5
Nombre: 6
Nombre: 7
Nombre: 8
Nombre: 9
Nombre: 10
Foreach avec tableau associatif
$pays_capitales = [
    "France" => "Paris",
    "Espagne" => "Madrid",
    "Italie" => "Rome"
];
foreach ($pays_capitales as $pays => $capitale) {
    echo "La capitale de $pays est $capitale.<br>";
}

Résultat :

La capitale de France est Paris.
La capitale de Espagne est Madrid.
La capitale de Italie est Rome.
For avec tableau
$fruits = ["Pomme", "Banane", "Orange", "Fraise", "Kiwi"];
for ($m = 0; $m < count($fruits); $m++) {
    echo "Fruit: " . $fruits[$m] . "<br>";
}

Résultat :

Fruit: Pomme
Fruit: Banane
Fruit: Orange
Fruit: Fraise
Fruit: Kiwi
While avec filtrage
$nombres_pairs = range(1, 20);
$index = 0;
while ($index < count($nombres_pairs)) {
    if ($nombres_pairs[$index] % 2 == 0) {
        echo "Nombre pair: " . $nombres_pairs[$index] . "<br>";
    }
    $index++;
}

Résultat (nombres pairs uniquement) :

Nombre pair: 2
Nombre pair: 4
Nombre pair: 6
Nombre pair: 8
Nombre pair: 10
Nombre pair: 12
Nombre pair: 14
Nombre pair: 16
Nombre pair: 18
Nombre pair: 20
Do-while avec tableau
$prenoms = ["Alice", "Bob", "Charlie", "David"];
$index = 0;
do {
    if ($index < count($prenoms)) {
        echo "Prénom: " . $prenoms[$index] . "<br>";
    }
    $index++;
} while ($index < count($prenoms));

Résultat :

Prénom: Alice
Prénom: Bob
Prénom: Charlie
Prénom: David
For avec continue
$couleurs = ["Rouge", "Vert", "Bleu", "Jaune", "Orange"];
for ($n = 0; $n < count($couleurs); $n++) {
    if ($couleurs[$n] == "Vert") {
        echo "On saute la couleur Verte.<br>";
        continue; // Saute l'itération
    }
    echo "Couleur: " . $couleurs[$n] . "<br>";
}

Résultat :

Couleur: Rouge
On saute la couleur Verte.
Couleur: Bleu
Couleur: Jaune
Couleur: Orange
Foreach avec index
$villes = ["Paris", "Londres", "Berlin", "Madrid"];
foreach ($villes as $index => $ville) {
    echo "Ville $index: $ville<br>";
}

Résultat :

Ville 0: Paris
Ville 1: Londres
Ville 2: Berlin
Ville 3: Madrid

Bonnes pratiques