PHP if else pour la logique conditionnelle
PHP if else évalue une expression booléenne et exécute un ou plusieurs blocs de code selon le résultat. Utilisez elseif pour enchaîner des conditions supplémentaires quand les issues sont mutuellement exclusives et dépendent de l’ordre. Seule la première branche qui correspond s’exécute, donc placez d’abord la condition la plus restrictive. if/elseif/else reste la structure de contrôle par défaut pour tout branchement basé sur des vérifications de plage, des expressions composées ou des types mixtes.
Exemple PHP if else pour le branchement conditionnel
Sortie :
La sortie apparaîtra ici...
Sortie :
Note : B
Comment cet exemple fonctionne
$notecontient une valeur entière de82.- La condition
if$note >= 90estfalse, donc PHP ignore ce bloc. - La condition
elseif$note >= 80esttrue, donc PHP exécute le deuxième bloc et afficheNote : B. - Le bloc
elsene s’exécute jamais, car une branche précédente a déjà correspondu. PHP arrête l’évaluation de la chaîne après la première condition vraie.
Qu’est-ce que elseif en PHP ?
PHP elseif ajoute une nouvelle condition à un bloc if existant. PHP évalue chaque elseif dans l’ordre et exécute le premier qui est true, puis ignore le reste de la chaîne. Vous pouvez empiler autant de branches elseif que nécessaire, même si au-delà de trois ou quatre branches, match ou un tableau de correspondance est souvent plus propre. En syntaxe avec accolades, else if (deux mots) et elseif (un mot) se comportent de manière identique, mais en syntaxe alternative (if: ... endif;) seul elseif en un mot est valide.
Erreurs courantes avec PHP if else
Utiliser = au lieu de == ou === dans les conditions
Incorrect :
if ($role = "admin") { // assigne "admin" à $role, toujours vrai
echo "Accès autorisé";
}
Correct :
if ($role === "admin") {
echo "Accès autorisé";
}
Une affectation dans if modifie la variable et renvoie la valeur assignée, ce qui peut faire exécuter la branche sans condition.
Se fier à l’indentation au lieu des accolades (else ambigu)
Incorrect :
if ($isAdmin)
if ($isActive)
echo "ok";
else
echo "pas admin"; // se rattache au if interne
Correct :
if (!$isAdmin) {
echo "pas admin";
} elseif ($isActive) {
echo "ok";
}
Sans accolades, else se rattache au if non apparié le plus proche. Utilisez des accolades ou restructurez la logique en une seule chaîne if/elseif/else.
PHP If/Elseif vs Switch vs Match
| Fonctionnalité | if/elseif | switch | match (PHP 8+) |
|---|---|---|---|
| Type de comparaison | Toute expression | Faible (==) | Stricte (===) |
| Retourne une valeur | Non | Non | Oui |
| Exécution en cascade | N/A | Oui, sauf avec break | Non |
| Idéal pour | Vérifications de plage, conditions composées | Nombreuses valeurs discrètes avec logique partagée | Correspondance stricte valeur-résultat |
Utilisez if/elseif quand les conditions impliquent des plages, une logique composée ou des appels de fonction. Passez à match quand vous mappez des valeurs discrètes vers des résultats avec comparaison stricte. Utilisez switch quand vous avez besoin d’un passage en cascade ou de blocs d’instructions par cas.
Plus d’exemples
Clause de garde pour réduire l’imbrication :
function process($input) {
if (!is_string($input)) {
return "type invalide";
}
if ($input === "") {
return "chaine vide";
}
return strtoupper($input);
}
Les retours anticipés remplacent les arbres if/else imbriqués et gardent la logique principale au niveau d’indentation supérieur.
Raccourci ternaire pour des affectations simples à deux branches :
$label = ($count > 0) ? "avec elements" : "vide";
Quand la branche produit une seule valeur, l’opérateur ternaire ? : remplace un bloc if/else complet dans une seule expression.
FAQ
Quelle est la différence entre elseif et else if en PHP ?
En syntaxe avec accolades ({ }), les deux sont équivalents, PHP traite else if comme un else suivi d’un if imbriqué. En syntaxe alternative (if: ... endif;), seul elseif en un mot compile. Utilisez elseif partout pour éviter les erreurs de syntaxe lors d’un refactoring entre styles.
Les conditions PHP doivent-elles utiliser == ou === ?
== effectue une conversion implicite de type : 0 == "foo" est true en PHP 7 (et devient false en PHP 8 pour les chaînes non numériques). === compare à la fois la valeur et le type, sans coercition. Préférez === pour des résultats prévisibles, surtout avec des entrées utilisateur ou des données de types mixtes.
Peut-on avoir plusieurs branches elseif en PHP ?
Oui. PHP autorise un nombre illimité de branches elseif dans une seule chaîne. Chaque condition est évaluée dans l’ordre, et seule la première branche vraie s’exécute. Si aucune ne correspond et qu’un else existe, il sert de valeur par défaut. Quand la liste dépasse quatre ou cinq branches, match ou un tableau de correspondance est plus lisible.