Les Structures Conditionnelles en PHP

Maîtrisez les structures conditionnelles pour contrôler le flux d'exécution de votre code PHP

Introduction aux conditions

Les structures conditionnelles sont essentielles en programmation car elles permettent à votre code de prendre des décisions et d'exécuter différentes instructions selon que certaines conditions sont remplies ou non.

En PHP, il existe plusieurs façons d'écrire des conditions :

À quoi servent les conditions ?
  • Exécuter du code uniquement si une condition est remplie
  • Choisir entre plusieurs blocs de code à exécuter
  • Créer des chemins d'exécution différents selon les circonstances

Structure if-else

La structure if-else est la plus fondamentale pour créer des conditions en PHP.

Syntaxe de base
if (condition) {
    // Code exécuté si condition est vraie
} else {
    // Code exécuté si condition est fausse
}
Exemple concret
$age = 18;

if ($age >= 64) {
    $message = "Tu es senior.";
} elseif ($age >= 18) {
    $message = "Tu es majeur.";
} else {
    $message = "Tu es mineur.";
}

Résultat : Tu es majeur.

Conditions multiples
$note = 75;

if ($note >= 90) {
    echo "Excellent";
} elseif ($note >= 80) {
    echo "Très bien";
} elseif ($note >= 70) {
    echo "Bien";
} elseif ($note >= 60) {
    echo "Passable";
} else {
    echo "À améliorer";
}

Résultat : Bien

Opérateurs de comparaison

Opérateur Nom Exemple Description
== Égal $a == $b Vrai si $a est égal à $b après conversion de type
=== Identique $a === $b Vrai si $a est égal à $b et qu'ils sont du même type
!= Différent $a != $b Vrai si $a n'est pas égal à $b après conversion de type
!== Non identique $a !== $b Vrai si $a n'est pas égal à $b ou qu'ils ne sont pas du même type
< Inférieur à $a < $b Vrai si $a est strictement inférieur à $b
> Supérieur à $a > $b Vrai si $a est strictement supérieur à $b
<= Inférieur ou égal à $a <= $b Vrai si $a est inférieur ou égal à $b
>= Supérieur ou égal à $a >= $b Vrai si $a est supérieur ou égal à $b
<=> Spaceship $a <=> $b Retourne -1, 0 ou 1 selon que $a < $b, $a==$b ou $a> $b

Opérateurs ternaires

L'opérateur ternaire est une forme condensée de la structure if-else.

Syntaxe de base
$variable = (condition) ? valeur_si_vrai : valeur_si_faux;
Exemple concret
$ages = 16;
$messages = $ages > 18 ? "Tu es majeur." : "Tu es mineur.";

Résultat : Tu es mineur.

Opérateur null coalescent
$nom = null;
$nomParDefaut = $nom ?? "Utilisateur anonyme";

Résultat : Utilisateur anonyme

Attention ! L'opérateur ternaire est idéal pour des conditions simples, mais peut rendre le code difficile à lire s'il est imbriqué ou trop complexe.

Structure switch-case

La structure switch est utilisée pour effectuer différentes actions en fonction de différentes conditions.

Syntaxe de base
switch (expression) {
    case valeur1:
        // Code à exécuter si expression = valeur1
        break;
    case valeur2:
        // Code à exécuter si expression = valeur2
        break;
    default:
        // Code à exécuter par défaut
}
Exemple concret
$fruits = 'raisin';

switch ($fruits) {
    case 'pomme':
        $message = "C'est une pomme.";
        break;
    case 'banane':
        $message = "C'est une banane.";
        break;
    case 'orange':
        $message = "C'est une orange.";
        break;
    default:
        $message = "Je n'aime pas ce fruit.";
}

Résultat : Je n'aime pas ce fruit.

Important : N'oubliez pas le mot-clé break à la fin de chaque case pour éviter que l'exécution ne se poursuive dans les cases suivantes.

Expression match (PHP 8+)

L'expression match est une amélioration moderne de switch, introduite dans PHP 8. Elle est plus concise et retourne une valeur.

Syntaxe de base
$resultat = match (expression) {
    valeur1 => resultat1,
    valeur2 => resultat2,
    default => resultatDefaut
};
Exemple concret
$legumes = 'carotte';
$messageLegume = match ($legumes) {
    'carotte' => "C'est une carotte.",
    'tomate' => "C'est une tomate.",
    'courgette' => "C'est une courgette.",
    default => "Je n'aime pas ce légume."
};

Résultat : C'est une carotte.

Cas multiples
$code = 404;
$message = match ($code) {
    200, 201, 202 => "Succès",
    400, 401, 403, 404 => "Erreur client",
    500, 501, 502 => "Erreur serveur",
    default => "Code inconnu"
};

Résultat : Erreur client

Opérateurs logiques

Les opérateurs logiques permettent de combiner plusieurs conditions.

ET logique (&&)
if ($age >= 18 && $permis == true) {
    echo "Vous pouvez conduire";
} else {
    echo "Vous ne pouvez pas conduire";
}

Les deux conditions doivent être vraies

OU logique (||)
if ($membre == true || $essaiGratuit == true) {
    echo "Accès autorisé";
} else {
    echo "Accès refusé";
}

Au moins une condition doit être vraie

NON logique (!)
if (!$estBloque) {
    echo "Bienvenue !";
} else {
    echo "Votre compte est bloqué";
}

Inverse la valeur (vrai devient faux et vice versa)

Exemple de combinaison d'opérateurs

Combinaison d'opérateurs
$utilisateur = [
    'role' => 'admin',
    'statut' => 'actif'
];

$accesAutorise  = ($utilisateur['role'] === 'admin' && $utilisateur['statut'] === 'actif');

Résultat : true (accès autorisé)

Bonnes pratiques

  • Lisibilité : Utilisez une indentation cohérente et des espaces pour rendre votre code plus lisible
  • Comparaison stricte : Privilégiez les opérateurs === et !== pour éviter les conversions de type implicites
  • Parenthèses : Utilisez des parenthèses pour clarifier l'ordre d'évaluation des conditions complexes
  • Imbrication : Évitez de trop imbriquer les conditions pour garder votre code maintenable
  • Early return : Retournez tôt pour éviter les blocs conditionnels trop profonds