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.
Défi
FacileLisez 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, affichezStop - Si la commande est
yellow, affichezSlow down - Si la commande est
green, affichezGo - Si la commande est
flashing redouflashing yellow, affichezProceed with caution - Pour toute autre valeur, affichez
Invalid signal
Exemple :
Si l'entrée est green, la sortie devrait être :
GoSi l'entrée est flashing red, la sortie devrait être :
Proceed with cautionSi l'entrée est blue, la sortie devrait être :
Invalid signalAide-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
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators