Les structures conditionnelles en PHP
Les structures conditionnelles en PHP
-
Objectifs
- Se familiariser avec les structures de contrôle en PHP
- Utiliser les structures conditionnelles (
if...else
etswitch
). -
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
etif ... 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 instructionsif
. - 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
-
Les instructions
if...else
etif...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 instructionsif ... else
. -
Syntaxe
-
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.«
-
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
- Il existe 3 opérateurs logiques pour relier les conditions:
AND
(ou&&
) : Vérifie que les conditions sont toutes vraies.OR
(ou||
) : Vérifie qu’une des conditions au moins est vraie.XOR
: Vérifie qu’une seule des conditions est vraie mais pas toutes.NOT
se représente par un point d’exclamation «!
»-
Applications
-
App01
-
Énoncé
- Écrire un script PHP qui demande de saisir une lettre (prédéfinie dans une variable) et qui affiche si c’est une voyelle ou une consonne…
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
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 :
-
Syntaxe:
- 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:
- En utilisant l’opérateur ternaire, le même code pourrait être écrit de manière plus compacte:
- 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:
-
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 :
- Cas où la variable n’est pas définie :
- Cas où la variable est définie mais est nulle :
- Chaine de valeurs avec ?? :
- On peut enchaîner plusieurs valeurs pour choisir la première qui est définie et non nulle.
- 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’instructionsif
. - 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’instructionif... 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.
-
Syntaxe:
-
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
-
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
<?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
}
?>
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
}
<?php
$score = 85;
if ($score >= 90) {
echo "Très bien !";
} elseif ($score >= 70) {
echo "Bien joué.";
} else {
echo "Vous pouvez faire mieux.";
}
?>
Exemple:
if (($mois == 12 && $jour == 25)||($mois == 1 && $jour == 1)){
echo 'Jour de fête !';
}
L’opérateur ternaire est un raccourci pour la
if {} else {}
structure.
(condition) ? instruction si vrai : instruction si faux
<?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
}
?>
<?php echo ($age < 18) ? 'Enfant' : 'Adule'; ?>
$variable = $valeur1 ?? $valeur2;
$nom = "Alice";
echo $nom ?? "Invité"; // Affiche "Alice"
echo $prenom ?? "Invité"; // Affiche "Invité" car $prenom n'est pas définie
$age = null;
echo $age ?? 18; // Affiche "18" car $age est null
$a = null;
$b = null;
$c = "Valeur trouvée";
echo $a ?? $b ?? $c ?? "Valeur par défaut"; // Affiche "Valeur trouvée"
switch(expression)
{
case valeur1:
bloc d’instructions 1;
break;
case valeur2:
bloc d’instructions 2;
break;
........................
case valeurN:
bloc d’instructions N;
break;
default:
bloc d’instructions par défaut;
break;
}
<? 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";
}
?>