Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

DECOUVERTE DES CONDITIONS ET UTILISATION DES OPERATEURS DE COMPARAISON EN PHP

Présentation des conditions en PHP

Les structures conditionnelles (ou plus simplement conditions) vont nous permettre d’exécuter différents scripts et donc d’effectuer différentes actions selon qu’une condition soit vérifiée ou pas.

Par exemple, on va pouvoir utiliser les conditions pour afficher un message de bienvenue différent en PHP sur notre site selon que l’utilisateur soit un homme ou une femme.

Nous allons très souvent utiliser les conditions avec des variables : selon la valeur stockée dans une variable, nous allons vouloir exécuter un bloc de code plutôt qu’un autre.

Les conditions vont ainsi être un passage incontournable pour rentre un site dynamique puisqu’elles vont nous permettre d’exécuter différents codes et ainsi afficher différents résultats selon le contexte actuel et selon le profil de chaque utilisateur.

En PHP, nous allons pouvoir utiliser les conditions suivantes :

  • La condition if (si) ;
  • La condition if… else (si… sinon) ;
  • La condition if… elseif… else (si… sinon si… sinon).

Nous allons étudier chacune de ces conditions dans la suite de cette partie.

Le PHP met encore à notre disposition ce qu’on appelle des structures ternaires qui sont des conditions très condensées ainsi que l’instruction switch, que nous verrons en détail après avoir étudié les conditions « classiques ».

Les opérateurs de comparaison

Comme je l’ai précisé plus haut, nous allons construire nos conditions autour de variables. Selon la valeur d’une variable, nous allons exécuter tel bloc de code ou tel autre.

Ainsi, nous allons avoir besoin avant tout de connaître des opérateurs de comparaison pour pouvoir tester si la valeur d’une variable répond à un certain critère ou pas.

Voici ci-dessous les différents opérateurs de comparaison disponibles en PHP ainsi que leur signification :

Opérateur Signification
== Est égal (en valeur) à
=== Est égal en type et en valeur à
!= Est différent (en valeur) de
!== Est différent en valeur ou en type de
> Est strictement supérieur à
< Est strictement inférieur à
>= Est supérieur ou égal à
<= Est inférieur ou égal à

Certain de ces opérateurs nécessitent certainement une précision de ma part.

Tout d’abord, notez que notre « égal » mathématique (l’égalité de valeur) se traduit en PHP par le double signe égal ==.

Ensuite, certains d’entre vous doivent certainement se demander ce que signifie le triple égal. Lorsqu’on utilise un triple égal ===, on signifie qu’on recherche l’égalité sur la valeur et sur le type de valeur.

Prenons un exemple simple pour illustrer cela. Imaginons que l’on possède une variable $x dans laquelle on stocke le chiffre 4. On veut ensuite comparer la valeur stockée dans notre variable à la chaîne de caractères « 4 ».

Si on utilise le double signe égal pour effectuer la comparaison, l’égalité va être validée par le PHP car celui-ci ne va tester que les valeurs, et 4 est bien égal à 4.

En revanche, si on utilise le triple signe égal, alors l’égalité ne va pas être validée car nous comparons un nombre à une chaine de caractères (donc des types différents de valeurs).

On va suivre exactement le même raisonnement pour les deux opérateurs != et !==.

Pas d’inquiétude, nous allons clarifier les choses et nous entrainer avec des exemples dès maintenant.

Utiliser les opérateurs de comparaison

Il me semble véritablement essentiel, pour comprendre clairement les conditions, d’avant tout comprendre comment fonctionnent les opérateurs de comparaison et les mécanismes qui sont activés en PHP lorsqu’on les utilise.

Tout d’abord, vous devez savoir que lorsqu’on teste la valeur d’une variable avec un opérateur de comparaison, le PHP va par défaut toujours renvoyer une valeur booléenne selon le résultat de l’égalité / inégalité.

Ainsi, si l’égalité ou l’inégalité est validée, le PHP va renvoyer la valeur booléenne true. Si en revanche l’égalité ou l’inégalité n’est pas validée, c’est le valeur false qui va être retournée.

Il est essentiel de savoir cela car nos conditions vont ensuite se servir de cette valeur booléenne renvoyée.

Je comprends que cela puisse vous sembler assez abstrait pour le moment. Illustrons donc immédiatement cela avec des exemples.

Utilisation des opérateurs de comparaison en PHP

On cherche à comprendre comment PHP réagit à une comparaison

Expliquons les résultats obtenus. Tout d’abord, vous remarquez qu’on a utilisé la fonction var_dump() pour afficher les résultats plutôt que echo.

Cela a été fait pour une raison simple : echo va transformer toute valeur en chaîne de caractères avant de l’afficher. Or, l’équivalent de la valeur booléenne true en chaîne de caractères est la chaine de caractères « 1 » tandis que false devient « 0 » ou une chaine de caractères vide.

Comme je voulais absolument vous montrer que le PHP renvoyait bien une valeur booléenne après l’utilisation d’opérateurs de comparaison, j’ai donc été obligé d’utiliser la fonction var_dump() à la place de echo.

Le rôle de la fonction PHP var_dump() est en effet d’afficher les informations structurées d’une variable, dont son type et sa valeur. C’est pour cela que le navigateur nous affiche des bool(true) ou bool(false).

Cela dit, analysons maintenant chacune de nos opérations en détail et expliquons les résultats en soi.

Pour commencer, on compare la valeur contenue dans $x au chiffre 4. Si le PHP considère l’égalité vérifiée, il renvoie le booléen true. Dans le cas contraire, il renverra false.

Comme vous pouvez le voir, c’est la valeur true qui est renvoyée. En effet, la valeur de notre variable est bien égale en valeur au chiffre 4.

Dans la deuxième opération, on compare la valeur contenue dans $x au chiffre 7 avec l’opérateur de supériorité absolue.

Si le PHP détermine que la valeur contenue dans $x est strictement supérieure au chiffre 7, il renvoie true. Dans le cas contraire, il renvoie false.

Dans le cas présent, $x contient le chiffre 4, qui n’est pas strictement supérieur au chiffre 7. C’est donc la valeur false qui est renvoyée.

Pour notre troisième comparaison, on décide de comparer la valeur de $x à la chaine de caractères « 4 ». On utilise le double signe égal pour cela, on ne va donc comparer que les valeurs.

Comme la valeur 4 est bien égale en valeur à la chaine de caractères « 4 », PHP renvoie true.

Ensuite, on compare à nouveau la valeur contenue dans notre variable $x à la chaine de caractères « 4 ». Cependant, cette fois-ci, on utilise le triple signe égal.

En faisant cela, on signifie que l’on veut comparer les valeurs mais également les types de chacune des deux valeurs. Comme un nombre et une chaine de caractères n’ont pas le même type, PHP renvoie cette fois-ci false.

Dans notre cinquième opération, on demande à PHP de déterminer si la valeur contenue dans $x est différente (en valeur) de la chaine de caractères « 4 ».

Comme le chiffre 4 n’est pas différent en valeur de la chaine de caractères « 4 », le PHP renvoie false (car rappelez vous qu’on teste ici la différence).

Enfin, on demande à PHP de déterminer si la valeur contenue dans $x est différente en valeur ou en type de la chaine de caractères « 4 ».

Le chiffre 4 est bien d’un type différent de la chaine de caractères « 4 », et donc le PHP renvoie true.

Avec toutes ces indications, vous devriez maintenant être capable de bien comprendre les exemples ci-dessus. Toutefois, je conçois que la somme d’informations nouvelles puisse être dense. Prenez donc bien votre temps et n'hésitez pas à refaire les exemples puis à relire ce chapitre à tête reposée.

Cela peut vous sembler inutile pour le moment, mais je vous assure que vous progresserez beaucoup plus vite par la suite et que l’apprentissage sera beaucoup plus agréable si vous faites l’effort de comprendre comment fonctionne le PHP en profondeur.

Chapitre précédent

Chapitre suivant