Menu
Coddy logo textTech

Switch Statement

Fait partie de la section Fondamentaux du Journey PHP de Coddy — leçon 32 sur 71.

Lorsque vous devez comparer une seule variable à de nombreuses valeurs spécifiques, l'instruction switch offre une alternative plus propre aux longues chaînes if-elseif.

L'instruction switch vérifie une variable une seule fois, puis la compare à différentes valeurs case :

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
    default:
        echo "Regular day";
}
?>

PHP compare $day à chaque cas. Quand il trouve une correspondance, il exécute le code de ce bloc.

L'instruction break est cruciale — elle indique à PHP de sortir du switch après l'exécution du case correspondant. Sans elle, PHP continuerait à exécuter tout le code ci-dessous, même celui des autres case.

Remarquez comment samedi et dimanche partagent le même code en superposant les cases ensemble. Le cas default agit comme un else — il s'exécute quand aucun autre cas ne correspond.

<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Excellent!";
        break;
    case "B":
        echo "Good job!";
        break;
    default:
        echo "Keep trying!";
}
?>

Utilisez switch lorsque vous comparez une variable à plusieurs valeurs exactes. Pour des conditions complexes ou des plages, restez avec les instructions if-elseif.

challenge icon

Défi

Facile

Lisez une chaîne command depuis l'entrée représentant une couleur de feu de circulation.

Utilisez une instruction switch pour déterminer l'action appropriée en fonction de la couleur :

  • Si la commande est red, affichez Stop
  • Si la commande est yellow, affichez Slow down
  • Si la commande est green, affichez Go
  • Si la commande est flashing red ou flashing yellow, affichez Proceed with caution
  • Pour toute autre valeur, affichez Invalid signal

Exemple :

Si l'entrée est green, la sortie devrait être :

Go

Si l'entrée est flashing red, la sortie devrait être :

Proceed with caution

Si l'entrée est blue, la sortie devrait être :

Invalid signal

Aide-mémoire

L'instruction switch offre une façon plus propre de comparer une seule variable à plusieurs valeurs spécifiques :

<?php
$day = "Monday";

switch ($day) {
    case "Monday":
        echo "Start of the week";
        break;
    case "Friday":
        echo "Almost weekend";
        break;
    default:
        echo "Regular day";
}
?>

L'instruction break quitte le switch après l'exécution du case correspondant. Sans elle, PHP continue d'exécuter le code des cases suivants.

Plusieurs cases peuvent partager le même code en les empilant :

<?php
switch ($day) {
    case "Saturday":
    case "Sunday":
        echo "Weekend!";
        break;
}
?>

Le case default s'exécute quand aucun autre case ne correspond, similaire à une instruction else.

Utilisez les instructions switch pour comparer une variable à plusieurs valeurs exactes. Pour des conditions complexes ou des plages, utilisez plutôt des instructions if-elseif.

Essayez vous-même

<?php
// Lire l'entrée
$command = trim(fgets(STDIN));

// TODO: Écrivez votre code ci-dessous en utilisant une instruction switch
// Déterminez l'action appropriée en fonction de la couleur du feu de circulation


?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux