Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

STRUCTURES CONDITIONNELLES TERNAIRES ET SWITCH EN PHP

Les ternaires : des conditions très condensées

Les conditions ternaires se basent sur l’opérateur ternaire ?.

Les structures ternaires vont nous permettre d’écrire certaines de nos conditions d’une autre manière, en les condensant à l’extrême afin d’accélérer la vitesse d’exécution de notre code.

Avant de vous montrer les écritures ternaires, je dois vous prévenir : beaucoup de développeurs n’aiment pas les ternaires car elles ont la réputation d’être très peu lisibles et très peu compréhensibles.

Ce reproche est à moitié vrai. D’un côté, on peut vite ne pas comprendre une ternaire si on est un développeur moyen ou si le code qui nous est présenté n’est pas ou mal commenté.

D’un autre côté, si vous indentez et commentez bien votre code, vous ne devriez pas avoir de problème à comprendre une structure ternaire.

Les structures ternaires vont se baser sur la syntaxe suivante :
test ? valeur à retourner si true : valeur à retourner si false.

Ecrit comme cela, ça doit vous sembler très peu clair. Illustrons donc immédiatement avec un exemple :

Utilisation des structures ternaires en PHP

Les structures ternaires vont nous permettre d’écrire des conditions de façon très condensée en PHP

Analysons le code ci-dessus ensemble. Ici, on compare la valeur contenue dans $x à 0.

Si PHP renvoie true suite à cette comparaison, la valeur entre apostrophe située avant les deux points sera stockée dans notre variable $message.

En revanche, si PHP renvoie false, c’est la valeur située après les deux points qui sera stockée dans $message.

Vous pouvez retenir cette syntaxe car c’est celle que nous utiliserons généralement avec les ternaires.

Notez bien la place du point d’interrogation et celle des deux points ainsi que le mode de fonctionnement et de renvoi de valeur des ternaires.

Le switch PHP

L’instruction switch va nous permettre d’effectuer différentes actions en fonction de différents cas. En cela, le switch va poursuivre le même but que les structures conditionnelles vues précédemment.

Il va pouvoir être intéressant d’utiliser un switch lorsque l’on souhaite traiter beaucoup de cas différents.

Attention cependant : le switch possède une syntaxe un peu différente de celle des conditions qu’on a pu étudier jusqu’à présent.

De plus, le switch ne va pouvoir gérer que l’égalité dans la comparaison et non pas l’inégalité.

Créons immédiatement un premier exemple utilisant un switch, afin que je puisse ensuite vous expliquer le rôle de chaque élément composant cette instruction.

Création et utilisation d’une instruction PHP switch

On utilise le switch pour gérer de nombreux cas

Comme vous pouvez le voir, il y a de nombreuses nouvelles choses dans ce code que nous allons expliquer.

Tout d’abord, nous allons devoir « switcher » sur quelque chose. Généralement, nous switcherons sur (la valeur d’)une variable. Dans notre cas, on switch sur notre variable $note.

Ensuite, nous allons créer des case (c'est à dire des « cas » en français) pour chaque scénario que nous souhaitons gérer.

Par exemple, le case 0 gère le cas où notre variable contient la valeur 0, le case 5 gère celui où notre variable contient 5, etc.

Rappelez vous une nouvelle fois que le switch ne gère que l’égalité et non pas l’inégalité. Ainsi, on ne pourra pas créer de case < 10 par exemple.

Dans chaque cas (case), nous allons placer le code qui doit être exécuté si la valeur de notre variable correspond au cas en question ainsi qu’une instruction break.

L’instruction break sert à arrêter l’exécution du switch une fois le « bon » cas rencontré. C’est pour cela qu’il nous faut placer un break à l’intérieur de chaque case.

Si l’on omet le break, le switch va continuer son exécution même après avoir rencontré le bon case, ce qui n’est pas le comportement attendu.

Finalement, on doit clôturer un switch en mentionnant un cas par défaut, le default dans le cas où la valeur de notre variable ne corresponde à aucun case.

Le default du switch correspond un petit peu si vous voulez au else suivant un if.

Ainsi, default va gérer toutes les issues possibles non gérées par les case.

Voilà tout pour l’explication du fonctionnement de l'instruction switch. Pour le reste, ce n’est que de la syntaxe pure, je vous laisse donc mémoriser la place de chaque élément.

Une nouvelle fois, on peut aussi bien utiliser une condition classique plutôt qu’un switch et arriver au même résultat.

Cependant, lorsqu’on doit gérer de nombreux cas et lorsqu’on le peut (c’est-à-dire lorsqu’on ne compare que sur des égalités), il est généralement préférable d’utiliser un switch pour des raisons de lisibilité, de simplicité et de performance.

A ce stade de votre apprentissage, je vous conseille de toutes manières de vous entrainer avec tous les outils que je vous donne. 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.

Chapitre précédent

Chapitre suivant