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

  1. $note contient une valeur entière de 82.
  2. La condition if $note >= 90 est false, donc PHP ignore ce bloc.
  3. La condition elseif $note >= 80 est true, donc PHP exécute le deuxième bloc et affiche Note : B.
  4. Le bloc else ne 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/elseifswitchmatch (PHP 8+)
Type de comparaisonToute expressionFaible (==)Stricte (===)
Retourne une valeurNonNonOui
Exécution en cascadeN/AOui, sauf avec breakNon
Idéal pourVérifications de plage, conditions composéesNombreuses valeurs discrètes avec logique partagéeCorrespondance 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.