Samedi 05 Juillet 2008 
Homepage
   Ordre alphabétique
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
   Par catégories
Moteur (139)
Annuaire (1384)
Spécialisé (466)
Payant (42)
   Par pays
   Par langue
   PHP - MYSQL
Manuel PHP
Manuel MYSQL
Portion de code
   Outils webmasters
Générer Méta-tags
Générer .htaccess
   Partenaires
Bouches du rhone
Camargue
Arles
Cybersaladelle
Arles-Inform
Vietnam
 
switch

L'instruction switch équivaut à une série d'instructions if. 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.

Note : Notez que contrairement à d'autres langages, la structure continue s'applique aux structures switch et se comporte de la même manière que break. Si vous avez un switch dans une boucle, et que vous souhaitez continuer jusqu'à la prochaine itération de la boucle extérieure, vous vous devez utiliser continue 2.

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 - Instruction switch
<?php
if ($i == 0) {
echo "i égale 0";
} elseif ($i == 1) {
echo "i égale 1";
} elseif ($i == 2) {
echo "i égale 2";
}

switch ($i) {
case 0:
echo "i égale 0";
break;
case 1:
echo "i égale 1";
break;
case 2:
echo "i égale 2";
break;
}
?>


Exemple - Instruction switch utilisant une chaîne de caractères
<?php
switch ($i) {
case "tarte":
echo "i est une tarte";
break;
case "barre":
echo "i est une barre";
break;
case "gateau":
echo "i est un gateau";
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 n'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, ou bien dès 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 - Instruction switch et fall through
<?php
switch ($i) {
case 0 :
echo "i égale 0";
case 1 :
echo "i égale 1";
case 2 :
echo "i égale 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 à 2, 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 (même s'il est possible que vous l'omettiez dans certaines circonstances).

Dans une commande switch, une condition n'est évaluée qu'une fois, et le résultat est comparé à chaque case. Dans une structure elseif, les conditions sont évaluées à chaque comparaison. Si votre condition est plus compliquée qu'une simple comparaison, ou bien fait partie d'une boucle, switch sera plus rapide.

La liste de commandes d'un case peut être vide, auquel cas PHP utilisera la liste de commandes du cas suivant.

Exemple - Instruction switch et cas vide
<?php
switch ($i) {
case 0:
case 1:
case 2:
echo "i est plus petit que 3 mais n'est pas négatif";
break;
case 3 :
echo "i égale 3";
}
?>


Un case spécial est default. Ce cas est utilisé lorsque tous les case ont échoués. Il doit être le dernier cas listé. Par exemple :

Exemple - Instruction switch et default
<?php
switch ($i) {
case 0:
echo "i égale 0";
break;
case 1:
echo "i égale 1";
break;
case 2:
echo "i égale 2";
break;
default:
echo "i n'est ni égal à 2, ni à 1, ni à 0.";
}
?>


Une autre chose à mentionner est que la valeur du case peut être toute expression de type scalaire, c'est-à-dire nombre entier, nombre à virgule flottante et chaîne de caractères. Les tableaux sont sans intérêt dans ce contexte-là.

La syntaxe alternative pour cette structure de contrôle est la suivante : pour plus d'informations, voir syntaxes alternatives).

Exemple - Instruction switch alternative
<?php
switch ($i):
case 0:
echo "i égale 0";
break;
case 1:
echo "i égale 1";
break;
case 2:
echo "i égale 2";
break;
default:
echo "i n'est ni égal à 2, ni à 1, ni à 0";
endswitch;
?>

Copyright © 2001-2006 The PHP Group. All rights reserved.
 
   Menu
Ajouter un moteur
Faire un lien
Annuaire
   Ressources
Ban 468 x 60
Ban 234 x 60
Ban 120 x 60
Logo 88 x 31
Templates
Textures
Police de caractère
Gifs animés
Cliparts
Avatars
Icones
   Gifs animés
Animaux
Alimentation
Personnage
Transport
Sport
Musique
Nature
Objet
   Cliparts
Cuisine
Enfants
Femmes
Machines
Mains
Medecine
Ordinateurs
   Services divers
Programme TV
Sortie Cinéma
Sortie DVD
 
Copyright © 2006. Universurf. All rights reserved
Cybersaladelle.com - Camargue.net - Bouches-du-rhone.com - LesAlpilles.com - Arles-camargue.com - Universmicro.com
Les-saintes-maries-de-la-mer.com - Lessaintesmariesdelamer.com - Camargue-Arles.com - Camargue.org - Mejanes.com
Universurf.com - Universurf.fr - Universurf.net - Universurf.ch