HOBBES World.com

PHP
Présentation
Variables
Structure
Formulaire
Mail
Bases de données
Expressions Régulières
Cookies
Authentification

Structures
If... Else
For
While
Switch

Exemples
Exemple 1
Exemple 2

Menu Général
Informatique
Programmation
Loisirs
Outils
Divers
Accueil

Log In


Login à vie

Créer un compte
Mot de passe

La structure Switch en PHP



  1. A quoi sert le switch ?

Le switch permet de remplacer une structure de "if" imbriqués. L'intérêt est de simplifier la lecture du code, mais d'un point de vue exécution, on n'y gagne pas forcement beaucoup.

Ainsi, grâce à une structure switch, vous pouvez comparer une valeur à plusieurs autres, et effectuer l'action qui y correspond. Cette structure s'appelle "switch" dans la majorité des langages, mais on peut également la trouver sous le nom "case" en Pascal par exemple.

Nous allons donc voir un exemple de switch.


  2. Switch (valeur) { case ... }


  2. 1. Exemple avec des chiffres

Prenons le cas d'une variable envoyée par un formulaire qui peut prendre les valeurs 1, 2, 3, 4 et 5. Cette valeur va être appelé "$Fid".

Si l'on veut afficher "Bonjour" pour le 1, "Buongiorno" pour le 2, "Ola" pour le 3, "Hi" pour le 4 et "Guttentag" pour le 5. Voici comment on peut traduire ceci en PHP :
<?
switch ($Fid) {
  case 1:
    echo "Bonjour";
    break;
  case 2:
    echo "Buongiorno";
    break;
  case 3:
    echo "Ola";
    break;
  case 4:
    echo "Hi";
    break;
  case 5:
    echo "Guttentag";
    break;
}
?>

Si, par exemple, la valeur de $Fid est 2, voila ce qui sera affiché : Buongiorno
Par contre, n'oubliez pas de mettre le "break" après chaque test. Pour savoir pourquoi, allez dans le bas de la page à la partie "les subtilités"...


  2. 2. Exemple avec des Chaînes

Prenons le cas inverse maintenant, à partir de "Bonjour" on veut 1, "Buongiorno" on veut 2, "Ola" on veut 3, "Hi" on veut 4 et "Gottentag" on veut 5. Voici comment on peut traduire ceci en PHP :
<?
switch ($Fid) {
  case "Bonjour":
    echo 1;
    break;
  case "Buongiorno":
    echo 2;
    break;
  case "Ola":
    echo 3;
    break;
  case "Hi":
    echo 4;
    break;
  case "Guttentag":
    echo 5;
    break;
}
?>
Dans ce cas, si $Fid vaut "Ola", voila ce qui sera affiché : 3
  3. Switch (valeur) { case ... default ... }

Dans les exemples vu précédemment, on avait fixé une valeur pour une valeur entrée. Si ce n'était pas l'une des valeurs précisée, alors il ne se passait rien. On peut également avoir envie de définir une valeur par défaut. Dans ce cas, il suffit d'ajouter la condition "default". Cette condition est toujours vraie, c'est la dernière à être exécutée :
<?
switch ($Fid) {
  case 1:
    echo "Bonjour";
    break;
  case 2:
    echo "Buongiorno";
    break;
  case 3:
    echo "Ola";
    break;
  case 4:
    echo "Hi";
    break;
  case 5:
    echo "Guttentag";
    break;
  default:
    echo "Salut";
    break;
}
?>
Dans ce cas, si "$Fid" vaut 18, il sera affiché : Salut

  4. Les subtilités


  4. 1. Le 'break'

Le "break" est très important, et peut parfois servir d'astuces. En effet, le "break" permet de signifier qu'il faut se rendre à la fin de la structure if, sinon, tout le reste est exécuté. Donc, si l'on reprend le premier cas (avec "2" on affiche "Buogiorno"), si le code est le suivant :
<?
switch ($Fid) {
  case 1:
    echo "Bonjour";
  case 2:
    echo "Buongiorno";
  case 3:
    echo "Ola";
  case 4:
    echo "Hi";
  case 5:
    echo "Guttentag";
}
?>

voila ce qu'il sera écrit : BuongiornoOlaHiGuttentag.

En effet, dès qu'une des conditions est vraie, toutes les suivantes le sont aussi !




  » Commentaires

Aucun commentaire pour cette page.

Si vous souhaitez ajouter un commentaire, vous devez être identifié


 Page modifiée le : 24/07/2003
Site modifié le : 02/04/2008
  Flux RSS : cliquez-ici si vous voulez suivre les évolutions
Contacter le webmaster : si vous trouvez qu'il manque des infos, n'hésitez pas à me le dire !
© HobbesWorld - /php/structswitch.php