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 : 03/07/2009
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 !