L’instruction switch en PHP

L’instruction switch va nous permettre d’exécuter un code en fonction de la valeur d’une variable. On va pouvoir gérer autant de situations ou de « cas » que l’on souhaite.

En cela, l’instruction switch représente une alternative à l’utilisation d’un if…elseif…else mais qui est plus limitante puisque le switch ne va gérer que l’égalité comme type de comparaison.

En dehors de cela, on va pouvoir utiliser un switch ou une condition « classique » de manière équivalente en PHP. Il n’y a donc pas de réel intérêt à utiliser le switch plutôt qu’un if…elseif…else.

Cependant, dans certains cas, utiliser un switch peut rendre le code plus clair et légèrement plus rapide dans son exécution.

La syntaxe d’une instruction switch va être différente de celle des conditions vues jusqu’ici. Regardez plutôt l’exemple ci-dessous :

<!DOCTYPE html>
<html>
    <head>
        <title>Cours PHP & MySQL</title>
        <meta charset="utf-8">
        <link rel="stylesheet" href="cours.css">
    </head>
    
    <body>
        <h1>Titre principal</h1>
        <?php
            $x = 2; 
            
            switch($x){
                case 0:
                    echo '$x stocke la valeur 0';
                    break;
                case 1:
                    echo '$x stocke la valeur 1';
                    break;
                case 2:
                    echo '$x stocke la valeur 2';
                    break;
                case 3:
                    echo '$x stocke la valeur 3';
                    break;
                case 4:
                    echo '$x stocke la valeur 4';
                    break;
                default:
                    echo '$x ne stocke pas de valeur entre 0 et 4';
            }
        ?>
        <p>Un paragraphe</p>
    </body>
</html>

Exemple de syntaxe et d'utilisation d'une structure switch PHP

La première chose à noter ici est qu’on doit fournir une variable sur laquelle on va « switcher ».

Ensuite, l’instruction switch va s’articuler autour de case qui sont des cas. Si la valeur de notre variable est égale à celle du case, alors on exécute le code qui est à l’intérieur.

Par exemple, le code contenu dans case 0: va être exécuté si la valeur contenue dans notre variable est 0, le code contenu dans case 1: va être exécuté si la valeur contenue dans notre variable est 1, etc.

Chaque case d’un switch doit se terminer par une instruction break. Cette instruction indique au PHP qu’il doit sortir du switch.

Sans break, le PHP continuerait à tester les différents autres case du switch même si un case égal à la valeur de la variable a été trouvé, ce qui ralentirait inutilement le code et pourrait produire des comportements non voulus.

Enfin, à la fin de chaque switch, il convient d’indiquer une instruction default. Le default est l’équivalent du else des conditions vues précédemment : il sert à gérer tous les autres cas et son code ne sera exécuté que si aucun case ne correspond à la valeur de la variable.

Pas la peine d’utiliser une instruction break au sein de default puisque default sera toujours placée en fin de switch. Si le PHP arrive jusqu’au default, alors il sortira ensuite naturellement du switch puisque celui-ci ne contient plus aucun code après default.

Encore une fois, le switch ne présente pas en PHP de réel intérêt par rapport à l’utilisation d’une condition classique en dehors du fait qu’utiliser un switch peut dans certains cas réduire le temps d’exécution d’un script et que cette structure est parfois plus claire qu’un if…elseif…else contenant des dizaines de elseif.

Pour le moment, je vous conseille tout de même de vous entrainer avec tous les outils que je vous présente. Vous pourrez par la suite décider de ne pas utiliser ceci ou cela, mais pour le moment il est essentiel que vous ayez une vue d’ensemble des fonctionnalités de base proposées par PHP.

Laisser un commentaire