Documentation PHP
Précédent Chapitre 11 Suivant

switch

L'instruction switch équivaut à une serie d'instruction if. Dans de nombreuses occasion, vous aurez besoin de comparer la meme variable (ou expression) avec un grand nombre de valeur 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.

Les deux exemples suivants sont deux manières différentes d'écrire la même chose, l'une en utilisant une séries de if, et l'autre en utilisant l'instruction switch :

 /* exemple 1 */
 
 if ($i == 0) {
     print "i égal 0";
 }
 if ($i == 1) {
     print "i égal 1";
 }
 if ($i == 2) {
     print "i égal 2";
 }
 
 /* exemple 2 */
 
 switch ($i) {
     case 0:
         print "i égal 0";
         break;
     case 1:
         print "i égal 1";
         break;
     case 2:
         print "i égal 2";
         break;
 }
      

Il est important de comprendre que l'instruction switch exécute chacune des clauses dans l'ordre. L'instruction switch est exécutée ligne par ligne. Au début, aucun code est exécuté. Seulement lorsqu'un case est vérifié, PHP exécute alors les instructions correspondantes. PHP continue d'exécuter les instructions jusqu'à la fin du bloc d'instructions du switch block, ou bien dè qu'il trouve l'instruction break. Si vous ne pouvez pas utiliser l'instruction break à la fin de l'instruction case, PHP continuera à exécuter toutes les instructions qui suivent.Par exemple :

 /* exemple 3 */
 
 switch ($i) {
     case 0:
         print "i égal 0";
     case 1:
         print "i égal 1";
     case 2:
         print "i égal 2";
 }
      

Dans cet exemple, si $i est égal à 0, PHP va exécuter quand même toutes les instructions qui suivent. Si $i est égal à 1, PHP exécutera les deux dernières instructions. Et seulement si $i est égal à, vous obtiendrez le résultat escompté, c'est-à-dire, l'affiche de "i égal 2. Donc, l'important est de ne pas oublier l'instruction break .

Un "case" spécial est "default". Ce cas correspond à tous les cas qui ne fonctionnes pas cité précédemment. Par exemple :

 /* exemple 4 */
 
 switch ($i) {
     case 0:
         print "i égal 0";
         break;
     case 1:
         print "i égal 1";
         break;
     case 2:
         print "i égal 2";
         break;
     default:
         print "i n'est pas égal à 0, 1 ou 2";
 }
      

Une autre chose à mentionner est que l'instruction case peut ê une expression à de type sclaire, c'est-à-dire nombre entier, nombre à virgule flottante; et chaîne de caractère. Les tableaux sont sans interêt dans ce contexte-là.

Précédent Sommaire Suivant
continue Chapitre 11 require