Instruction PHP If-Else : Guide Complet
Apprenez à utiliser les instructions if, else et elseif en PHP pour prendre des décisions dans vos scripts avec des exemples pratiques.
Les instructions conditionnelles permettent à un programme d'emprunter différents chemins selon ce qui est vrai au moment de son exécution. En PHP, les instructions if, else et elseif constituent le fondement de cette prise de décision. Ce chapitre explique chaque forme, les conditions qui les pilotent, la syntaxe alternative de gabarit, et les erreurs courantes à éviter.
Cette page couvre le simple if, l'ajout d'une branche else, le chaînage de conditions avec elseif, l'imbrication, la syntaxe gabarit avec deux-points/endif, et le raccourci ternaire.
L'instruction if
Une instruction if exécute un bloc de code uniquement lorsque sa condition est évaluée à true. La condition se place entre parenthèses ; le bloc à exécuter se place entre accolades.
if (condition) {
// runs only when condition is true
}La condition est n'importe quelle expression que PHP peut interpréter comme un boolean. Les opérateurs de comparaison (>, <, >=, <=, ==, ===, !=) et les opérateurs logiques (&&, ||, !) sont les briques de construction habituelles — consultez PHP Operators pour la liste complète.
<?php
$temperature = 30;
if ($temperature > 25) {
echo "It's warm outside.";
}
?>Parce que 30 > 25 est true, ceci affiche It's warm outside.. Si la condition était fausse, rien ne s'afficherait et PHP passerait simplement à la suite.
Ajouter une branche else
else fournit un bloc de repli qui s'exécute quand la condition if est fausse. Exactement l'un des deux blocs s'exécute — jamais les deux, jamais aucun.
Ici $number > 0 est vrai, donc le premier bloc s'exécute et la sortie est 5 is a positive number. En définissant $number à -3, le premier bloc serait ignoré et le else s'exécuterait, affichant -3 is a negative number.
Attention à l'opérateur.
=assigne une valeur, tandis que==compare. Écrireif ($number = 0)définit silencieusement$numberà0et est traité comme faux — un bug classique. Utilisez==(ou le strict===, qui vérifie aussi le type) pour les comparaisons.
Vérifier plusieurs conditions avec elseif
Lorsqu'il y a plus de deux résultats possibles, chaînez les conditions avec elseif. PHP teste chaque condition dans l'ordre et exécute la première qui est vraie ; si aucune ne correspond, l'else optionnel s'exécute.
Avec $number = 0, la première condition (> 0) est fausse, donc PHP passe au elseif (== 0), qui est vrai, et affiche 0 is zero. Une fois qu'une branche correspond, le reste de la chaîne est ignoré — l'ordre est important, donc placez les conditions les plus spécifiques en premier.
Vous pouvez ajouter autant de branches elseif que nécessaire. Lorsqu'une seule valeur est comparée à de nombreuses options fixes, une instruction switch est souvent plus lisible qu'une longue chaîne elseif.
Imbriquer des instructions if
Un bloc if peut en contenir un autre pour prendre des décisions qui dépendent d'une précédente. Gardez l'imbrication peu profonde — plus de deux ou trois niveaux signale généralement que la logique devrait être divisée en fonctions.
<?php
$number = 5;
if ($number > 0) {
if ($number % 2 == 0) {
echo "$number is a positive even number";
} else {
echo "$number is a positive odd number";
}
} else {
echo "$number is not positive";
}
?>Le if externe confirme que le nombre est positif ; le if interne vérifie ensuite s'il est pair ($number % 2 == 0). Puisque 5 est positif et impair, la sortie est 5 is a positive odd number.
Syntaxe alternative (avec deux-points)
PHP propose également une forme basée sur les deux-points se terminant par endif. Elle se lit bien lorsque les conditions encadrent du HTML dans des gabarits, où les accolades non appariées sont faciles à perdre.
<?php $loggedIn = true; ?>
<?php if ($loggedIn): ?>
<p>Welcome back!</p>
<?php else: ?>
<p>Please sign in.</p>
<?php endif; ?>Le comportement est identique à la forme avec accolades — if (...): remplace if (...) {, et endif; remplace l'accolade fermante }.
Le raccourci ternaire
Pour une simple affectation soit/soit, l'opérateur ternaire ?: condense un bloc if/else en une seule expression : condition ? valeur_si_vrai : valeur_si_faux.
<?php
$age = 20;
$status = ($age >= 18) ? "adult" : "minor";
echo $status; // adult
?>C'est équivalent à un bloc if/else de quatre lignes. Utilisez-le uniquement pour les conditions courtes ; les ternaires imbriqués deviennent rapidement illisibles.
Résumé
ifexécute un bloc quand sa condition est vraie ;elsefournit le repli.elseifchaîne des conditions supplémentaires, et la première branche vraie l'emporte.- Les instructions
ifpeuvent s'imbriquer, mais gardez l'imbrication peu profonde. - La syntaxe deux-points/
endifest pratique dans les gabarits HTML, et le ternaire?:raccourcit les choix simples soit/soit. - Comparez toujours avec
==/===, et non avec l'affectation=.
Ensuite, explorez les boucles PHP pour répéter du code tant qu'une condition est vraie, et consultez les variables PHP pour les valeurs que testent vos conditions.