Leçon 5 / 12
Leçon 05 · Partie 1 — Les fondamentaux

Boucles

Pourquoi les boucles ?

50 familles, même format 50 fois ? Absurde à la main. Les boucles font ça en quelques lignes.

Les boucles répètent une action sans réécrire le code. 100 produits, 20 lignes HTML, emails à tous les abonnés — quelques lignes suffisent.

while — "tant que..."

while répète un bloc tant qu'une condition est vraie. Dès qu'elle devient fausse, la boucle s'arrête.

PHP
$i = 1;  // on commence à 1

while ($i <= 5) {          // tant que $i est inférieur ou égal à 5...
    echo "Tour numéro $i<br>";
    $i++;                    // on augmente $i de 1 à chaque tour
}
Résultat
Tour numéro 1
Tour numéro 2
Tour numéro 3
Tour numéro 4
Tour numéro 5

Ce que PHP fait :

  1. $i = 1. 1 <= 5 ? Oui. Exécute. $i devient 2.
  2. $i = 2. 2 <= 5 ? Oui. Exécute. $i devient 3.
  3. ... jusqu'à $i = 5.
  4. $i = 6. 6 <= 5 ? Non. Stop.
⚠️

Boucle infinie ! Si tu oublies $i++, $i reste toujours à 1. La condition est toujours vraie. La boucle tourne indéfiniment. Le serveur plante. Assure-toi que le compteur évolue à chaque tour.

for — le compteur précis

for est parfaite quand tu sais exactement combien de fois répéter. Elle regroupe départ, condition et avancement en une seule ligne.

PHP
// for (point de départ ; condition d'arrêt ; avancement)
for ($i = 1; $i <= 5; $i++) {
    echo "$i ";
}
// Affiche : 1 2 3 4 5

Les trois parties :

  • $i = 1 — point de départ (exécuté une fois).
  • $i <= 5 — continue tant que vrai (vérifié à chaque tour).
  • $i++ — avance de 1 à chaque tour.

Exemple : générer une liste HTML.

PHP
echo "<ul>";
for ($i = 1; $i <= 5; $i++) {
    echo "<li>Produit numéro $i</li>";
}
echo "</ul>";
HTML généré
• Produit numéro 1
• Produit numéro 2
• Produit numéro 3
• Produit numéro 4
• Produit numéro 5

1000 produits ? Change juste le 5 par 1000. C'est tout.

foreach — parcourir une liste

foreach est la boucle la plus utilisée. Elle parcourt un tableau un élément à la fois.

PHP
$fruits = ["pomme", "banane", "cerise"];

foreach ($fruits as $fruit) {
    echo "J'aime les $fruit<br>";
}
Résultat
J'aime les pomme
J'aime les banane
J'aime les cerise

Décortiqué :

  • $fruits — le tableau à parcourir.
  • as $fruit — à chaque tour, l'élément du tour est dans $fruit. PHP gère le compteur seul.

Pour récupérer aussi la position (la clé) :

PHP
$personne = ["nom" => "Marie", "age" => 28, "ville" => "Paris"];

foreach ($personne as $cle => $valeur) {
    echo "$cle : $valeur<br>";
}
Résultat
nom : Marie
age : 28
ville : Paris

$cle => $valeur donne accès à l'étiquette (nom, age, ville) et au contenu. Très utilisé avec des données de base de données.

break et continue — contrôler la boucle

Pour interrompre une boucle ou sauter un tour :

PHP
// break — sort de la boucle immédiatement
for ($i = 1; $i <= 10; $i++) {
    if ($i === 5) break;   // on arrête dès qu'on arrive à 5
    echo "$i ";
}
// Affiche : 1 2 3 4

// continue — passe au tour suivant sans exécuter la suite
for ($i = 1; $i <= 6; $i++) {
    if ($i % 2 === 0) continue; // si le nombre est pair, on saute
    echo "$i ";
}
// Affiche : 1 3 5  (les impairs seulement)

En résumé :

  • break — s'arrête dès qu'on a trouvé ce qu'on cherche.
  • continue — saute ce tour et passe au suivant.

Cas concret : générer un menu de navigation

Générer un menu HTML depuis un tableau. En production, les données viennent d'une base de données, mais le principe est identique.

PHP
$pages = [
    "Accueil"  => "/",
    "Blog"     => "/blog",
    "Contact"  => "/contact",
];

echo "<nav><ul>";
foreach ($pages as $label => $url) {
    echo "<li><a href='$url'>$label</a></li>";
}
echo "</ul></nav>";
HTML généré
<nav><ul>
  <li><a href="/">Accueil</a></li>
  <li><a href="/blog">Blog</a></li>
  <li><a href="/contact">Contact</a></li>
</ul></nav>

Pour ajouter une page au menu, ajoute juste une ligne dans $pages. Le HTML se génère seul.

// À retenir
  • while → répète tant que la condition est vraie — pense à faire évoluer le compteur !
  • for → quand on sait à l'avance combien de fois répéter
  • foreach → parcourir un tableau, élément par élément — le plus utilisé en pratique
  • foreach ($tab as $cle => $valeur) → accès à la clé ET à la valeur
  • break → sort de la boucle immédiatement
  • continue → passe au tour suivant sans exécuter la suite du bloc