PHP : switch, une alternative à if

Avatar de Benjamin Crozat.

Publié le par Benjamin Crozat

Temps de lecture estimé : 3 minutes

switch, case et break, qu'est-ce que tout cela ? Quand est-ce qu'un switch est préférable à un if ? Quelles sont ses forces et ses faiblesses ?

Si vous en êtes à lire cet article au sujet des switch en PHP, c’est que vous êtes probablement familiers avec les conditions (if, elseif et else). Le switch est un moyen alternatif qui nous permet de vérifier une valeur.

Pourquoi utiliser switch plutôt qu’if en PHP ?

Il arrivera par moment que vous ayez à comparer une variable ou une expression avec un nombre important de valeurs. Dans ce cas, faire ça avec un if peut être extrêmement répétitif et moins facile à lire.

Dans l’exemple qui suit, nous avons une variable “language” égale à “Français”. En fonction de ce langage, nous affichons un remerciement dans cette même langue. Voici ce que cela donne avec un if :

$language = 'Français';
 
if ($language === 'English') {
echo 'Thank you!';
} elseif ($language === 'Español') {
echo '¡Gracias!';
} elseif ($language === 'Français') {
echo 'Merci !';
} elseif ($language === 'Italiano') {
echo 'Grazie!';
} else {
echo '🤷‍♂️';
}

Allons maintenant voir l’équivalent avec switch.

Quelle syntaxe pour switch en PHP ?

La syntaxe d’un switch brille par le fait qu’elle est moins répétitive qu’un if.

$language = 'Français';
 
switch ($language) {
case 'English':
echo 'Thank you!';
break;
case 'Español':
echo '¡Gracias!';
break;
case 'Français':
echo 'Merci !';
break;
case 'Italiano':
echo 'Grazie!';
break;
default:
echo '🤷‍♂️';
}

Comment tout cela marche ?

  1. Chaque case est exécutée dans l’ordre où il a été défini. (Sauf dans le cas de default, que vous pourriez mettre n’importe où dans votre switch) ;
  2. Si la condition est remplie (dans ce cas, $language est égal à “Français”), alors on exécute le code qui suit. Ensuite, l’instruction break arrête net le code et passe à ce qui suivra au switch.

Quand ne pas utiliser switch ?

Dans le cas où nous aurions à vérifier notre variable pour une ou deux valeurs, alors une condition if est préférable à un switch.

$language = 'Français';
 
if ($language === 'Français') {
echo 'Merci !';
} else {
echo '🤷‍♂️';
}

Continuez votre lecture et devenez un expert en PHP :

0 commentaire

Besoin d'aide ? Envie de partager ?
Inscrivez-vous ou connectez-vous d'abord.

Ça vous a plu ?
Abonnez-vous à la newsletter !

Recevez régulièrement news, trucs et astuces à propos de Laravel et son ecosystème.

Autres articles à lire