Objectifs
- Se familiariser avec les structures de contrôle en PHP
- Utiliser les structures conditionnelles (
if...else et switch).
Présentation
- Comme la plupart des langages de programmation, PHP vous permet également d'écrire du code qui effectue différentes actions en fonction des résultats de conditions de test logiques ou comparatives au moment de l'exécution.
- Cela signifie que vous pouvez créer des conditions de test sous la forme d'expressions qui évaluent à true ou false et en fonction de ces résultats, vous pouvez effectuer certaines actions.
- Il existe plusieurs instructions en PHP que vous pouvez utiliser pour prendre des décisions:
- L' instruction
if
- Les instructions
if ... else et if ... elseif .... else
- L'opérateur ternaire
: ?
- L'opérateur de fusion nul
??
- L' instruction
switch ... case
- Nous explorerons chacune de ces affirmations dans les sections suivantes.
L’instruction if
- En PHP, l'instruction
if est utilisée pour exécuter un bloc de code uniquement si la condition spécifiée est évaluée à true.
- En PHP, l'instruction
if est la plus simple et la plus utilisée des instructions conditionnelles.
- Elle est présente dans tous les langages de programmation, elle est essentielle en ce qu’elle permet d’orienter l’exécution du script en fonction de la valeur booléenne d’une expression.
Syntaxe:
if (expression) instruction;
- ou
if (condition){
expression vraie;
} else {
expression fausse;
}
- ou encore
if (condition) {
code à exécuter si cette condition est vraie;
} elseif (condition) {
code à exécuter si cette condition est vraie;
} else {
code à exécuter si toutes les conditions sont fausses;
}
- L’instruction
if...else permet de traiter le cas où l’expression conditionnelle est vraie et en même temps d’écrire un traitement de rechange quand elle est évaluée à FALSE, ce que ne permet pas une instruction if seule.
- L'expression
if ... elseif ... else permet d'enchaîner une série d'instructions et évite d'avoir à imbriquer des instructions if.
- La condition doit être entre des parenthèses
- Les opérateurs (&& et ||) sont utilisées pour définir plusieurs conditions
- S'il n'y a qu'une instruction, les accolades ne sont pas nécessaires...
Exemple
<?php
$age = 20;
if ($age >= 18) {
echo "Vous êtes majeur.";
// Autres actions à effectuer pour les personnes majeures
} else {
echo "Vous êtes mineur.";
// Autres actions à effectuer pour les personnes mineures
}
?>
Les instructions if...else et if...elseif...else
- L'instruction
if...elseif...else vous permet de gérer plusieurs conditions en séquence.
- Vous pouvez avoir plusieurs conditions (
if et elseif) suivies d'un bloc de code qui sera exécuté si la condition correspondante est vraie.
- Le bloc de code dans le else sera exécuté si aucune des conditions précédentes n'est vraie.
- Le
if ... elseif ... else est une instruction spéciale qui est utilisée pour combiner plusieurs instructions if ... else.
Syntaxe
if (condition1) {
// Code à exécuter si condition1 est vraie
} elseif (condition2) {
// Code à exécuter si la condition1 est fausse et la condition2 est vraie
} else {
// Code à exécuter si condition1 et condition2 sont faux
}
Exemple
- L'exemple suivant vérifie d'abord si $score est supérieur ou égal à 90. Si c'est le cas, il affiche "Très bien !". Si la première condition est fausse, il vérifie ensuite si $score est supérieur ou égal à 70, et affiche "Bien joué" si c'est vrai. Si aucune de ces deux conditions n'est vraie, le bloc else est exécuté et affiche "Vous pouvez faire mieux."
<?php
$score = 85;
if ($score >= 90) {
echo "Très bien !";
} elseif ($score >= 70) {
echo "Bien joué.";
} else {
echo "Vous pouvez faire mieux.";
}
?>
Applications
App01
- Énoncé
- Créez le squelette d'une page Web classique (entête, corps, etc.) que vous sauvegardez sous le nom applicationif.php.
- Affichez dans cette page la chaîne de caractères "Bienvenue à notre programme en Php".
- Affichez le prix net d'un ordinateur après une remise variable en fonction du prix de ce dernier selon les critères suivants :
- Si le prix est supérieur à 2000 DT, la remise est de 15 %.
- Si le prix est supérieur à 1000 DT, la remise est de 10 %.
- Pour les montants inférieurs ou égaux à 1000 DT, la remise est de 5 %.
- Solution
- Essayez de faire l'exercice de votre côté avant de regarder la Solution !
App02
- Énoncé
- Dans une nouvelle page PHP écrire le script qui vous permet, en fonction de l'heure de votre système, d'afficher ces messages :
- à 12h: Bonne matinée Monsieur "Foulen"
- à 14h: Bonne appétit Monsieur "Foulen"
- à 19h: Bonne après midi Monsieur "Foulen", sinon Bonne soirée Monsieur "Foulen"
- Pour afficher une date en Php utiliser la fonction "
date('h:i:s')"
- Le résultat du travail doit ressembler au schéma suivant:

- Solution
- Essayez de faire l'exercice de votre côté avant de regarder la Solution !
App03
- Énoncé
- Dans une nouvelle page PHP écrire le script qui vous permet, en fonction de la date de votre système, d'afficher le jour de la semaine en langue Française "Bonjour 'le nom de votre ordinateur' nous somme le 'le jour de la semaine".
- Solution
- Essayez de faire l'exercice de votre côté avant de regarder la Solution !
App04
- Énoncé
- Saisir le code tarif correspondant au poids d’une lettre et afficher le prix à payer et afficher un message d’erreur si la lettre pèse plus de 500 grammes

- Solution>
-
- Essayez de faire l'exercice de votre côté avant de regarder la Solution !
Utiliser des opérateurs logiques
Utiliser un opérateur ternaire
- L'opérateur ternaire fournit une manière abrégée d'écrire les instructions
if ... else.
- L'opérateur ternaire n'est rien de plus qu'une instruction if, qui peut être écrite sur une seule ligne, est essentiellement un raccourci if else.
- L'opérateur ternaire est représenté par le symbole
? point d'interrogation ( ) et il prend trois opérandes: une condition à vérifier, un résultat pour true et un résultat pour false.
- Il est possible de faire un test avec une structure beaucoup moins lourde grâce à la structure suivante, appelée opérateur ternaire :
L'opérateur ternaire est un raccourci pour la if {} else {} structure.
(condition) ? instruction si vrai : instruction si faux
- La condition doit être entre des parenthèses
- Lorsque la condition est vraie, l'instruction de gauche est exécutée
- Lorsque la condition est fausse, l'instruction de droite est exécutée
Exemple:
<?php
if($age < 18){
echo 'Enfant'; // Afficher l'enfant si l'âge est inférieur à 18 ans
} else{
echo 'Adulte'; // Afficher Adulte si l'âge est supérieur ou égal à 18 ans
}
?>
En utilisant l'opérateur ternaire, le même code pourrait être écrit de manière plus compacte:
<?php echo ($age < 18) ? 'Enfant' : 'Adule'; ?>
L'opérateur ternaire dans l'exemple ci-dessus sélectionne la valeur à gauche des deux points (c'est-à-dire 'Enfant') si la condition est évaluée à vrai (c'est-à-dire si elle $age est inférieure à 18), et sélectionne la valeur à droite des deux points (c'est-à-dire ' Adulte ') si la condition est évaluée à false.
L'opérateur de fusion nul (??)
- En PHP 7, une nouvelle fonctionnalité, l'opérateur de fusion nul (
??) a été introduite. Il est utilisé pour remplacer l' opération ternaire en conjonction avec la fonction isset ().
- L' opérateur de fusion Null renvoie son premier opérande s'il existe et n'est pas NULL; sinon, il renvoie son deuxième opérande.
- L’opérateur de fusion nul (??) en PHP est un opérateur ternaire simplifié introduit dans PHP 7. Il permet de vérifier si une variable est définie et non nulle, et de retourner une valeur par défaut si ce n'est pas le cas. Cet opérateur est très utile pour éviter les erreurs lorsque l'on travaille avec des variables qui peuvent ne pas être définies.
Syntaxe:
$variable = $valeur1 ?? $valeur2;
Fonctionnement
- Si $valeur1 est définie et n'est pas null, alors $variable prendra la valeur de $valeur1.
- Si $valeur1 n'est pas définie ou est null, alors $variable prendra la valeur de $valeur2.
Exemple d'Utilisation
- Cas où la variable est définie et non nulle :
$nom = "Alice";
echo $nom ?? "Invité"; // Affiche "Alice"
Cas où la variable n'est pas définie :
echo $prenom ?? "Invité"; // Affiche "Invité" car $prenom n'est pas définie
Cas où la variable est définie mais est nulle :
$age = null;
echo $age ?? 18; // Affiche "18" car $age est null
Chaine de valeurs avec ?? :
- On peut enchaîner plusieurs valeurs pour choisir la première qui est définie et non nulle.
$a = null;
$b = null;
$c = "Valeur trouvée";
echo $a ?? $b ?? $c ?? "Valeur par défaut"; // Affiche "Valeur trouvée"
L’opérateur ?? est donc une alternative concise pour vérifier si une variable est définie ou non nulle, et il remplace souvent l’utilisation d’un isset() combiné avec un ternaire.
L’instruction switch...case
- L'instruction
switch équivaut à une série d'instructions if.
- L'instruction
switch est utilisée pour sélectionner l'un des nombreux blocs de code à exécuter. Il s'agit d'une alternative à l'instruction if... elseif....else
- Le mot-clé
break empêche le code de s'exécuter automatiquement dans le cas suivant. Le mot-clé default est utilisé si aucune correspondance n'est trouvée.
- En de nombreuses occasions, vous aurez besoin de comparer la même variable (ou expression) avec un grand nombre de valeurs différentes, et d'exécuter différentes parties de code suivant la valeur à laquelle elle est égale. C'est exactement à cela que sert l'instruction switch.
Exemple:

- Les parenthèses qui suivent le mot clé switch indiquent une expression dont la valeur est testée successivement par chacun des case.
- Si l’expression qui suit le mot-clé switch vaut valeur1, les instructions qui suivent la première instruction case sont exécutées.
Exemple:
Application 01
- Supposez que vous vouliez distribuer des cadeaux aux stagiaires selon leur rang.

Application 02
Énoncé
- Changer le code suivant avec l'instruction
switch
<? php
if ($note == 0)
{
echo "Tu es vraiment un gros Zér0 !!!";
}
elseif ($note == 5)
{
echo "Tu es très mauvais";
}
elseif ($note == 7)
{
echo "Tu es mauvais";
}
elseif ($note == 10)
{
echo "Tu as pile poil la moyenne, c'est un peu juste...";
}
elseif ($note == 12)
{
echo "Tu es assez bon";
}
elseif ($note == 16)
{
echo "Tu te débrouilles très bien !";
}
elseif ($note == 20)
{
echo "Excellent travail, c'est parfait !";
}
else
{
echo "Désolé, je n'ai pas de message à afficher pour cette note";
}
?>
Solution
- Essayez de faire l'exercice de votre côté avant de regarder la Solution !
- Références:
- https://www.php.net
- Livre PHP7 Cours et exercices Jean Engels 2e édition
- Technologies de l’Information et de la Communication 4 année secondaire