Conditions
Pourquoi les conditions ?
Tu prends des décisions tout le temps : "s'il pleut, parapluie, sinon lunettes". En PHP, c'est pareil. Les conditions permettent à ton code de réagir selon les données.
if — "si... alors..."
if dit : "si cette condition est vraie, exécute ce bloc". Sinon, saute-le.
$age = 20;
if ($age >= 18) {
echo "Tu es majeur.";
}
Décortiqué :
if— mot-clé "si".($age >= 18)— la condition entre parenthèses.>== supérieur ou égal.{ ... }— le bloc à exécuter si c'est vrai. Rien entre les accolades ne s'exécute si c'est faux.
Tu es majeur.
Si $age était 15, rien ne s'affiche.
if / else — "si... sinon..."
else = sinon. Une branche s'exécute toujours.
$heure = 14;
if ($heure < 12) {
echo "Bonjour !";
} else {
echo "Bonne après-midi !";
}
Bonne après-midi !
14 est inférieur à 12 ? Non. PHP saute le premier bloc et exécute else.
if / elseif / else — plusieurs cas
Plus de deux cas ? elseif enchaîne plusieurs conditions. PHP s'arrête à la première vraie.
Exemple avec des notes :
$note = 75;
if ($note >= 90) {
echo "Excellent !";
} elseif ($note >= 70) {
echo "Bien.";
} elseif ($note >= 50) {
echo "Moyen.";
} else {
echo "Insuffisant.";
}
Bien.
75 >= 90 ? Non. 75 >= 70 ? Oui. PHP affiche "Bien." et ignore les autres. Dès qu'une condition est vraie, les suivantes sont ignorées.
Les opérateurs de comparaison
Ce sont les symboles qui comparent deux valeurs :
$a == $b // égal en valeur seulement
$a === $b // identique : même valeur ET même type
$a != $b // différent en valeur
$a !== $b // pas identique (valeur OU type différent)
$a > $b // strictement supérieur
$a < $b // strictement inférieur
$a >= $b // supérieur ou égal
$a <= $b // inférieur ou égal
Point important — source de nombreux bugs :
== vs === :
"5" == 5 → true. PHP convertit les types et compare juste les valeurs.
"5" === 5 → false. PHP compare la valeur ET le type. Texte ≠ entier.
Conseil : utilise toujours ===. Ça évite les surprises.
Combiner des conditions avec && et ||
Pour vérifier plusieurs choses à la fois :
$age = 25;
$connecte = true;
// && (ET) — les DEUX conditions doivent être vraies
if ($age >= 18 && $connecte) {
echo "Accès autorisé";
}
// || (OU) — AU MOINS UNE condition doit être vraie
if ($age < 18 || !$connecte) {
echo "Accès refusé";
}
// ! (NON) — inverse une condition
if (!$connecte) {
echo "Merci de te connecter";
}
Résumé :
&&— ET : les deux doivent être vraies.||— OU : au moins une doit être vraie.!— NON : inverse la condition.!true= false.
switch — tester une variable contre plusieurs valeurs
switch est pratique pour tester la même variable contre plusieurs valeurs. Selon la valeur, un chemin différent s'exécute.
$jour = "lundi";
switch ($jour) {
case "lundi":
case "mardi":
echo "Début de semaine";
break;
case "vendredi":
echo "Bientôt le week-end !";
break;
default:
echo "Milieu de semaine";
}
Début de semaine
Points importants :
- Deux
casesans code entre eux partagent le même bloc. Ici "lundi" et "mardi" donnent le même résultat. breakstoppe le switch après le bon cas. Sansbreak, PHP continue les cases suivants — source de bugs.defaults'exécute si aucun cas ne correspond. Comme leelse.
N'oublie jamais le break après chaque case ! C'est l'erreur classique numéro un avec switch.
L'opérateur ternaire — un if/else en une ligne
Le ternaire raccourcit un if/else simple. Syntaxe : condition ? valeur_si_vrai : valeur_si_faux.
$age = 20;
// Version longue avec if/else :
if ($age >= 18) {
$statut = "majeur";
} else {
$statut = "mineur";
}
// Version courte avec l'opérateur ternaire — même résultat :
$statut = ($age >= 18) ? "majeur" : "mineur";
echo $statut; // majeur
Pratique pour les cas simples. Pour des logiques complexes, préfère le if/else classique.
ifexécute un bloc si la condition est vraieelsedéfinit ce qui se passe si la condition est fausseelseifpermet plusieurs cas — PHP s'arrête au premier vrai- Préfère
===à==: compare la valeur ET le type, évite les surprises &&(ET),||(OU),!(NON) pour combiner les conditionsswitchpour tester la même variable contre plusieurs valeurs — n'oublie pas lebreak- Ternaire
condition ? vrai : fauxpour les if/else simples sur une ligne