Le switch est exactement comme si on exécute une succession d'un if et de plusieurs elseif. Utiliser un switch à un certain avantage comparé à un if et à plusieurs elesif, c'est que sa structure est beaucoup moins lourde et nettement plus agréable à lire.
Le switch est une structure adaptée à des tests simples d'égalité sur une seule variable. La variable à évaluer ne renvoie pas un type booléen (comme pour if, if - else...) mais un résultat qui est comparé à d'autres valeurs.
switch (n)
{
case label1:
code à exécuter si n=label1;
break;
case label2:
code à exécuter si n=label2;
break;
default:
code à exécuter si n est different de llabel1et label2;
}
Prenons un exemple simple. Nous allons déclarer une variable contenant une chaîne de caractères, puis
nous allons tester cette chaîne grâce au switch.
On aura alors le code suivant :
Code PHP
<?php
$nom = "Carabde";
switch ($nom) {
case 'Jean' :
echo 'Votre nom est Jean.';
break;
case 'Dubois' :
echo 'Votre nom est Dubois.';
break;
case 'Carabde' :
echo 'Votre nom est Carabde.';
break;
default :
echo 'Je ne connais pas votre nom!';
}
?>
Dans notre cas, vu que $nom contient la chaîne de caractère Carabde, on va alors afficher à l'écran la phrase
suivante :
Votre nom est Carabde.
En revanche, si la variable $nom avait contenu la chaîne de caractère "loulou", ce même code aurait
affiché à l'écran :
Je ne connais pas votre nom!
En utilisant un if puis une succession de elseif, le code suivant aurait exactement eu le même affichage
sur l'écran :
Code PHP :
<?php
$nom = "Carabde";
if ($nom == "Jean") {
echo 'Votre nom est Jean.';
}
elseif ($nom == "Dubois") {
echo 'Votre nom est Dubois.';
}
elseif ($nom == "Carabde") {
echo 'Votre nom est Carabde.';
}
else {
echo ' Je ne connais pas votre nom !';
}
?>
Attention !
Notez bien l'utilisation de break dans chaque cas de votre switch. Si celui-ci est oubliée, tous les messages s'afficheront.
Le break sert à casser la boucle dés que la condition est exécutée.
On ne met pas de break après default, qui représente les cas non prévus (un peu comme le else).
|
|
Le langage php |
Les array en php |
| Tweet |