La structure de base : if… else


Une condition peut être écrite en PHP sous différentes formes. On parle de structures conditionnelles.
Celle que je vais vous apprendre à utiliser maintenant est la principale à connaître. Nous en verrons d'autres un peu plus loin.

Pour étudier la structure if… else, nous allons suivre le plan qui suit.

  1. Les symboles à connaître : il va d'abord falloir retenir quelques symboles qui permettent de faire des comparaisons. Soyez attentifs car ils vous seront utiles pour les conditions.
  2. La structure if… else : c'est le gros morceau. Là vous allez voir comment fonctionne une condition avec if… else. Inutile de vous dire qu'il est indispensable de bien comprendre cela.
  3. Des conditions multiples : on compliquera un peu nos conditions. Vous allez voir en effet qu'on peut utiliser plusieurs conditions à la fois.
  4. Le cas des booléens : nous verrons ensuite qu'il existe une façon particulière d'utiliser les conditions quand on travaille sur des booléens. Si vous ne savez pas ce que sont les booléens, revoyez le chapitre sur les variables.
  5. L'astuce bonus : parce qu'il y a toujours un bonus pour récompenser ceux qui ont bien suivi jusqu'au bout !

Les symboles à connaître



Juste avant de commencer, je dois vous montrer les symboles que nous serons amenés à utiliser. Je vais vous faire un petit tableau avec ces symboles et leur signification. Essayez de bien les retenir, ils vous seront utiles !

Symbole

Signification

==

Est égal à

>

Est supérieur à

<

Est inférieur à

>=

Est supérieur ou égal à

<=

Est inférieur ou égal à

!=

Est différent de


Il y a deux symboles « égal » (==) sur la première ligne, et il ne faut pas confondre ça avec le simple = que je vous ai appris dans le chapitre sur les variables. Ici, le double égal sert à tester l'égalité, à dire « Si c'est égal à… ».
Dans les conditions, on utilisera toujours le double égal (==).


Les symboles « supérieur » (>) et « inférieur » (<) sont situés en bas à gauche de votre clavier.




La structure if… else



Voici ce qu'on doit écrire, dans l'ordre, pour utiliser une condition.

  • Pour introduire une condition, on utilise le mot if, qui en anglais signifie « si ».
  • On ajoute à la suite entre parenthèses la condition en elle-même (vous allez voir que vous pouvez inventer une infinité de conditions).
  • Enfin, on ouvre des accolades à l'intérieur desquelles on placera les instructions à exécuter si la condition est remplie.

Puisqu'un exemple vaut toujours mieux qu'un long discours :

Code : PHP 

1

2

3

4

5

6

7

8

<?php

$age = 8;


if ($age <= 12)

{

    echo "Salut gamin !";

}

?>



Ici, on demande à PHP : si la variable $age est inférieure ou égale à 12, affiche « Salut gamin ! ».

Vous remarquerez que dans la quasi-totalité des cas, c'est sur une variable qu'on fait la condition.
Dans notre exemple, on travaille sur la variable $age. Ce qui compte ici, c'est qu'il y a deux possibilités : soit la condition est remplie (l'âge est inférieur ou égal à 12 ans) et alors on affiche quelque chose  ; sinon, eh bien on saute les instructions entre accolades, on ne fait rien.

Bon, on peut quand même améliorer notre exemple. On va afficher un autre message si l'âge est supérieur à 12 ans :

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

13

14

15

16

<?php

$age = 8;

    

if ($age <= 12) // SI l'âge est inférieur ou égal à 12

{

    echo "Salut gamin ! Bienvenue sur mon site !<br />";

    $autorisation_entrer = "Oui";

}

else // SINON

{

    echo "Ceci est un site pour enfants, vous êtes trop vieux pour pouvoir  entrer. Au revoir !<br />";

    $autorisation_entrer = "Non";

}

        

echo "Avez-vous l'autorisation d'entrer ? La réponse est : $autorisation_entrer";

?>



Bon : comment marche ce code ? Tout d'abord, j'ai mis plusieurs instructions entre accolades.
Ensuite, vous avez remarqué que j'ai ajouté le mot else (« sinon »). En clair, on demande : Si l'âge est inférieur ou égal à 12 ans, fais ceci, sinon fais cela.

Essayez ce bout de code en vous amusant à modifier la valeur de $age (sur la première ligne). Vous allez voir que le message qui s'affiche change en fonction de l'âge que vous indiquez !

Bien entendu, vous mettez les instructions que vous voulez entre accolades. Ici par exemple, j'ai donné une valeur différente à la variable $autorisation_entrer après avoir affiché un message, valeur qui pourrait nous servir par la suite :

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

13

14

<?php

if ($autorisation_entrer == "Oui") // SI on a l'autorisation d'entrer

{

    // instructions à exécuter quand on est autorisé à entrer

}

elseif ($autorisation_entrer == "Non") // SINON SI on n'a pas l'autorisation d'entrer

{

    // instructions à exécuter quand on n'est pas autorisé à entrer

}

else // SINON (la variable ne contient ni Oui ni Non, on ne peut pas agir)

{

    echo "Euh, je ne connais pas ton âge, tu peux me le rappeler s'il te plaît ?";

}

?>



Ouh là, ça commence à se compliquer un tantinet, n'est-ce pas ? 

La principale nouveauté ici, c'est le mot-clé elseif qui signifie « sinon si ». Dans l'ordre, PHP rencontre les conditions suivantes :

  1. si $autorisation_entrer est égale à « Oui », tu exécutes ces instructions…
  2. sinon si $autorisation_entrer est égale à « Non », tu exécutes ces autres instructions…
  3. sinon, tu redemandes l'âge pour savoir si on a ou non l'autorisation d'entrer.

Au fait, au départ, une variable ne contient rien. Sa valeur est vide, on dit qu'elle vaut NULL, c'est-à-dire rien du tout.
Pour vérifier si la variable est vide, vous pouvez taper : if ($variable == NULL)




Le cas des booléens



Si vous regardez bien le dernier code source (avec $autorisation_entrer), vous ne trouvez pas qu'il serait plus adapté d'utiliser des booléens ?

On a parlé des booléens dans le chapitre sur les variables. Vous vous souvenez ?
Ce sont ces variables qui valent soit true (vrai) soit false (faux). Eh bien, les booléens sont particulièrement utiles avec les conditions ! Voici comment on teste une variable booléenne :

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

<?php

if ($autorisation_entrer == true)

{

    echo "Bienvenue petit Zéro. :o)";

}

elseif ($autorisation_entrer == false)

{

    echo "T'as pas le droit d'entrer !";

}

?>



Voilà, jusque-là rien d'extraordinaire. Vous avez vu que je n'ai pas mis de guillemets pour true et false, comme je vous l'ai dit dans le chapitre sur les variables.

Mais un des avantages des booléens, c'est qu'ils sont particulièrement adaptés aux conditions.
Pourquoi ? Parce qu'en fait vous n'êtes pas obligés d'ajouter le == true. Quand vous travaillez sur une variable booléenne, PHP comprend très bien ce que vous avez voulu dire :

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

<?php

if ($autorisation_entrer)

{

    echo "Bienvenue petit Zéro. :o)";

}

else

{

    echo "T'as pas le droit d'entrer !";

}

?>



PHP comprend qu'il faut qu'il vérifie si $autorisation_entrer vaut true. Avantages :

  • c'est plus rapide à écrire pour vous ;
  • ça se comprend bien mieux.

En effet, si vous « lisez » la première ligne, ça donne : « SI on a l'autorisation d'entrer… ».
C'est donc un raccourci à connaître quand on travaille sur des booléens.

Oui mais ta méthode « courte » ne marche pas si on veut vérifier si le booléen vaut faux. Comment on fait avec la méthode courte, hein ?



Il y a un symbole qui permet de vérifier si la variable vaut false : le point d'exclamation (!). On écrit :

Code : PHP

1

2

3

4

5

6

<?php

if (! $autorisation_entrer)

{


}

?>



C'est une autre façon de faire. Si vous préférez mettre if ($autorisation_entrer == false) c'est tout aussi bien, mais la méthode « courte » est plus lisible.


Des conditions multiples



Ce qu'on va essayer de faire, c'est de poser plusieurs conditions à la fois. Pour cela, on aura besoin de nouveaux mots-clés. Voici les principaux à connaître :

Mot-clé

Signification

Symbole équivalent

AND

Et

&&

OR

Ou

||


Le symbole équivalent pour OR est constitué de deux barres verticales. Pour taper une barre verticale, appuyez sur les touches « Alt Gr » et « 6 » en même temps (sur un clavier AZERTY français) ou « Alt Gr » et « & » (sur un clavier AZERTY belge).



La première colonne contient le mot-clé en anglais, la troisième son équivalent en symbole. Les deux fonctionnent aussi bien, mais je vous recommande d'utiliser le mot-clé de préférence, c'est plus « facile » à lire (j'espère que vous connaissez un peu l'anglais, quand même). Servez-vous de ces mots-clés pour mettre plusieurs conditions entre les parenthèses. Voici un premier exemple :

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

<?php

if ($age <= 12 AND $sexe == "garçon")

{

    echo "Bienvenue sur le site de Captain Mégakill !";

}

elseif ($age <= 12 AND $sexe == "fille")

{

    echo "C'est pas un site pour les filles ici, retourne jouer à la Barbie !";

}

?>



C'est tout simple en fait et ça se comprend très bien : si l'âge est inférieur ou égal à 12 ans et que c'est un garçon, on lui permet d'accéder au site de son super-héros préféré.
Sinon, si c'est une fille dont l'âge est inférieur ou égal à 12 ans, on l'envoie gentiment balader (hum, hum, m'accusez pas de sexisme hein, c'était juste pour l'exemple).

Bon allez, un dernier exemple avec OR pour que vous l'ayez vu au moins une fois, et on arrête là.

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

<?php

if ($sexe == "fille" OR $sexe == "garçon")

{

    echo "Salut Terrien !";

}

else

{

    echo "Euh, si t'es ni une fille ni un garçon, t'es quoi alors ?";

}

?>




L'astuce bonus



Avec les conditions, il y a une astuce à connaître.
Sachez que les deux codes ci-dessous donnent exactement le même résultat :

Code : PHP 

1

2

3

4

5

6

<?php

if ($variable == 23)

{

    echo '<strong>Bravo !</strong> Vous avez trouvé le nombre mystère !';

}

?>



Code : PHP

1

2

3

4

5

6

7

8

<?php

if ($variable == 23)

{

?>

<strong>Bravo !</strong> Vous avez trouvé le nombre mystère !

<?php

}

?>



Comme vous le voyez, dans la seconde colonne on n'a pas utilisé de echo. En effet, il vous suffit d'ouvrir l'accolade ({), puis de fermer la balise PHP (?>), et vous pouvez mettre tout le texte à afficher que vous voulez en HTML !
Rudement pratique quand il y a de grosses quantités de texte à afficher, et aussi pour éviter d'avoir à se prendre la tête avec les antislashs devant les guillemets (" ou ').
Il vous faudra toutefois penser à refermer l'accolade après (à l'intérieur d'une balise PHP, bien entendu).

Et après ça, ma foi, il n'y a rien de particulier à savoir. Vous allez rencontrer des conditions dans la quasi-totalité des exemples que je vous donnerai par la suite.
Vous ne devriez pas avoir de problèmes normalement pour utiliser des conditions, il n'y a rien de bien difficile. Contentez-vous de reprendre le schéma que je vous ai donné pour la structure if… else et de l'appliquer à votre cas. Nous aurons d'ailleurs bientôt l'occasion de pratiquer un peu, et vous verrez que les conditions sont souvent indispensables.

Créé avec HelpNDoc Personal Edition: Protégez vos PDF sensibles avec ces mesures de sécurité simples