Les conditions
Introduction
Voilà un chapitre fondamental, les conditions permettent d’exécuter un ensemble d’instructions si une condition est vraie. Vous verrez rapidement qu’elles sont incontournables.
Par exemple, une personne a le droit de voter à condition qu’elle ait plus de 18 ans.
Les conditions vont donc vous permettre de rendre vos pages dynamiques en fonction de certaines situations.
Quelques opérateurs de comparaison
Qui dit condition, dit opérateur de comparaison. Si on reprend l’exemple évoqué ci-dessus en introduction, il va falloir vérifier l’âge de la personne pour savoir si elle a le droit de vote ou non, on peut alors traduire cette situation par la phrase suivante :
Si âge est supérieur ou égal à 18, alors on a le droit de voter.
L’opérateur que vous utiliserez ici est "supérieur ou égal" ce qui se traduit en PHP par le symbole >=.
Voici quelques symboles de comparaison de base et leur syntaxe :
Symbole |
Signification |
== |
Égal à |
!= |
N’est pas égal à (ou est différent de) |
> |
Est supérieur à |
>= |
Est supérieur ou égal à |
< |
Est inférieur à |
<= |
Est inférieur ou égal à |
Notez que l’on double le symbole = (==) pour comparer deux valeurs, en effet, souvenez-vous au chapitre Les bases du langage PHP, le symbole = utilisé seul permet d’affecter une valeur à une variable.
Les conditions simples
1. If... else
Les conditions, appelées également structures de contrôle ou structures conditionnelles, permettent d’exécuter des instructions si une condition est vraie. La plus simple est la structure if...else...
La syntaxe d’une condition est la suivante :
if (condition) {instructions}
Simple, non ? La condition doit toujours être écrite entre parenthèses. Les instructions seront exécutées si la condition est remplie, elles doivent être écrites entre les accolades, regardez l’exemple suivant :
<?php
$mon_age = 35;
if ($mon_age >= 18) {
echo "Vous êtes un adulte !";
}
?>
S’il n’y a qu’une seule instruction à exécuter après la condition, vous pouvez vous passer des accolades :
<?php
$mon_age = 35;
if ($mon_age >= 18) echo "Vous êtes un adulte !";
?>
Ici, PHP vérifie si $mon_age est supérieur ou égal à 18, ce qui est le cas, et exécute donc l’instruction qui affichera à l’écran Vous êtes un adulte ! :
Dans l’exemple ci-dessus, $mon_age vaut 35, il ne se passerait rien si $mon_age était inférieur à 18. C’est là que notre instruction else intervient, on pourrait exécuter du code dans le cas ou $mon_age serait inférieur à 18.
La structure à utiliser est la suivante :
If (condition) {instructions} else {instructions}
Le code deviendrait par exemple :
<?php
$mon_age = 35;
if ($mon_age >= 18) {
echo "Vous êtes un adulte !";
}
else {
echo "Vous n'êtes pas un adulte !";
}
?>
Essayez de modifier la valeur de $mon_age et observez le résultat de l’affichage à l’écran.
2. Elseif
Imaginez maintenant que l’on veuille gérer les enfants et les adolescents, nous allons introduire une nouvelle condition au milieu du code, on va utiliser pour cela l’instruction elseif :
<?php
$mon_age = 35;
if ($mon_age >= 18) { ...
Les conditions multiples
Jusqu’à présent, on a utilisé des conditions simples pour réaliser les tests, mais vous verrez qu’il sera très fréquent d’utiliser des conditions multiples.
Imaginez que vous vouliez sélectionner uniquement les adultes de genre masculin, la condition sera la suivante :
age > 18 ET genre = masculin
Pour cela, on va introduire une nouvelle notion avec les mots-clés OR (ou) et AND (et). Comme pour les opérateurs de comparaison, il y a des symboles spécifiques pour gérer ces deux opérateurs :
Symboles 1 |
Symboles 2 |
Signification |
&& |
AND |
Et |
|| |
OR |
Ou |
Le OU est symbolisé par deux barres verticales, appelées "pipe".
<?php
$age=35;
$genre='masculin';
if ($age >= 18 AND $genre == "masculin")
{
echo "c'est ok pour vous !";
}
else
{
echo "Vous n'êtes pas admis!";
}
?>
On obtiendra le même comportement en mettant les symboles && pour exprimer le ET :
<?php
$age=35;
$genre='masculin';
if ($age >= 18 && $genre == "masculin")
{
echo "c'est ok pour vous !";
} ...
L’opérateur ternaire
Ce paragraphe va aborder un dernier sujet concernant les conditions. PHP propose un raccourci pour exprimer une condition simple, prenez par exemple le code suivant :
<?php
$age = 35;
if ($age >= 18) {
$adulte == true;
}
else {
$adulte == false;
}
?>
Ceci peut aussi s’écrire sur deux lignes à l’aide d’une structure ou d’un opérateur ternaire :
<?php
$age = 35;
$adulte = ($age >= 18) ? true : false;
?>
Comme vous le constatez, c’est condensé et moins lisible qu’une instruction if, mais cela est très efficace en termes de performance.
Explication
$adulte sera la variable qui recevra vrai ou faux en fonction du test sur $age. Si c’est vrai, alors $adulte prendra la valeur indiquée après le point d’interrogation (true), sinon $adulte prendra la valeur qui suit les deux-points (false).