Cours

PHP Leçon 3

Les conditions

Faire réagir le programme selon la situation avec if, elseif et else, et comparer des valeurs.

20 min

À la fin de cette leçon, tu sauras

  • Écrire un if, un elseif et un else
  • Comparer des valeurs avec ===, <, >= …
  • Combiner des conditions avec && et ||

Si… sinon…

Une condition exécute un bout de code seulement si quelque chose est vrai. La condition est entre parenthèses, le code à exécuter entre accolades.

<?php
$heure = 14;

if ($heure < 12) {
    echo "Bonjour !";
} elseif ($heure < 18) {
    echo "Bon après-midi !";
} else {
    echo "Bonsoir !";
}

PHP teste les conditions dans l'ordre et s'arrête à la première qui est vraie. Le else final s'exécute si aucune ne l'est. Le elseif et le else sont facultatifs.

Comparer

  • === : égal (même valeur et même type) ;
  • !== : différent ;
  • <, >, <=, >= : plus petit, plus grand, ou égal.

Attention : = range une valeur dans une variable, === compare. Écrire if ($age = 18) ne compare rien : ça met 18 dans $age. Il existe aussi ==, qui compare sans vérifier le type ; préfère ===, plus prévisible.

Combiner plusieurs conditions

<?php
$age = 17;
$autorisation = true;

if ($age >= 18 || $autorisation) {
    echo "Inscription acceptée";
}

if ($age >= 16 && $age < 18) {
    echo "Tu peux commencer la conduite accompagnée";
}

if (!$autorisation) {
    echo "Il manque l'autorisation";
}
  • && (ET) : vrai si les deux conditions sont vraies ;
  • || (OU) : vrai si au moins une est vraie ;
  • ! (NON) : inverse une condition.

Astuce : décale (indente) le code à l'intérieur des accolades. PHP s'en moque, mais tu vois tout de suite ce qui dépend de la condition.

À toi de jouer

Écris un programme qui dit si une personne est majeure :

  • crée une variable $age avec un nombre ;
  • si $age est supérieur ou égal à 18, affiche « Majeur » ;
  • sinon, affiche « Mineur ».
index.php
  • La variable $age contient un nombre
  • Un if teste $age >= 18
  • Le programme affiche « Majeur »
  • Un else affiche « Mineur »
  • Pas de = tout seul dans la condition
Bloqué ? Voir une solution
<?php
$age = 16;

if ($age >= 18) {
    echo "Majeur";
} else {
    echo "Mineur";
}

Quiz

1Avec $note = 12;, qu'affiche ce code ?
if ($note >= 16) { echo "Très bien"; } elseif ($note >= 10) { echo "Validé"; } else { echo "Raté"; }
2Quel opérateur compare deux valeurs ?
3$a = true; $b = false; Que vaut $a && $b ?