Kodokon kodokon.com

Conditions et boucles

Faites réagir vos scripts avec if et match, puis répétez des actions avec for, foreach et while.

9 min · 3 questions

Ouvrir cette leçon dans Kodokon

Une condition permet au script de choisir un chemin : « si ceci est vrai, fais cela, sinon fais autre chose ». Le mot-clé if teste une expression qui vaut true ou false, grâce aux opérateurs de comparaison : > (supérieur), < (inférieur), >=, <=, === (égal, valeur ET type identiques) et !== (différent). elseif ajoute un test supplémentaire si le précédent a échoué, et else s'exécute quand aucun test n'a réussi. Les tests sont lus de haut en bas : le premier qui est vrai gagne.

PHP
<?php

$temperature = 12;

if ($temperature > 25) {
    echo "Il fait chaud.";
} elseif ($temperature > 15) {
    echo "Il fait doux.";
} else {
    echo "Prenez une veste !";
}
Ici, seul le bloc else est exécuté.

Quand vous comparez une même variable à plusieurs valeurs précises, l'expression match est plus élégante. Elle compare la variable à chaque cas (comparaison stricte, valeur et type) et renvoie directement une valeur, que l'on peut ranger dans une variable. Le cas default sert de filet de sécurité si aucune valeur ne correspond.

PHP
<?php

$day = "saturday";

$message = match ($day) {
    "saturday", "sunday" => "C'est le week-end !",
    "monday" => "Courage pour la reprise.",
    default => "Bonne journée de semaine.",
};

echo $message;
match renvoie une valeur, rangée ici dans $message.

Une boucle répète un bloc d'instructions plusieurs fois, sans copier-coller le code. La boucle for est idéale quand on connaît le nombre de tours à l'avance. Elle se lit en trois temps, séparés par des points-virgules : le départ ($i = 1), la condition de poursuite ($i <= 5, on continue tant qu'elle est vraie) et le pas ($i++, qui ajoute 1 à $i à chaque tour).

PHP
<?php

for ($i = 1; $i <= 5; $i++) {
    echo "Tour numéro {$i}<br>";
}
Cinq tours, de 1 à 5 inclus.

Deux autres boucles complètent la panoplie. foreach parcourt un tableau (une liste de valeurs, détaillée dans la prochaine leçon) et vous donne chaque élément l'un après l'autre. while répète son bloc tant que sa condition reste vraie : c'est à vous de faire évoluer la situation à l'intérieur de la boucle pour qu'elle finisse par s'arrêter.

PHP
<?php

$fruits = ["pomme", "poire", "kiwi"];

foreach ($fruits as $fruit) {
    echo "Fruit : {$fruit}<br>";
}

$countdown = 3;

while ($countdown > 0) {
    echo "{$countdown}...<br>";
    $countdown--;
}

echo "Partez !";
foreach parcourt une liste, while compte à rebours.

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. Quand le bloc else est-il exécuté ?
    • Toujours, juste après le bloc if
    • Uniquement si aucune condition précédente n'est vraie
    • Uniquement si la condition du if est vraie
  2. Quelle est une particularité de match par rapport à if ?
    • Il renvoie directement une valeur
    • Il ne peut comparer que des nombres
    • Il exécute tous les cas les uns après les autres
  3. Que se passe-t-il si la condition d'un while reste toujours vraie ?
    • La boucle s'arrête automatiquement après 100 tours
    • PHP ignore la boucle et passe à la suite
    • La boucle tourne sans fin et bloque le script