W3docs

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.

php— editable, runs on the server

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. Écrire if ($number = 0) définit silencieusement $number à 0 et 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.

php— editable, runs on the server

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é

  • if exécute un bloc quand sa condition est vraie ; else fournit le repli.
  • elseif chaîne des conditions supplémentaires, et la première branche vraie l'emporte.
  • Les instructions if peuvent s'imbriquer, mais gardez l'imbrication peu profonde.
  • La syntaxe deux-points/endif est 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.

Pratique

Pratique
En PHP, comment peut-on implémenter des instructions conditionnelles ?
En PHP, comment peut-on implémenter des instructions conditionnelles ?
Was this page helpful?