L'instruction
switch est utilisée pour effectuer différentes actions en fonction de différentes conditions. Ce qui suit implique des points de connaissances sur l'utilisation du commutateur. Les amis intéressés par l'utilisation du commutateur peuvent apprendre ensemble grâce à cet article. switch est une instruction switch, et l'instruction switch est similaire à une série d'instructions IF avec la même expression . Il existe de nombreuses situations dans lesquelles vous devez comparer la même variable (ou expression) avec de nombreuses valeurs différentes et exécuter un code différent en fonction de la valeur à laquelle elle est égale. C'est exactement à cela que sert l'instruction switch.
Remarque : notez que contrairement à d'autres langages, l'instruction continue agit de la même manière pour rompre lorsqu'elle est appliquée à un commutateur. Si vous avez un commutateur dans une boucle et que vous souhaitez passer à l'itération suivante dans la boucle externe, utilisez continue 2.
Les deux exemples suivants utilisent deux méthodes différentes pour réaliser la même chose, l'une utilisant une série d'instructions if, l'autre utilisant une instruction switch :
structure switch
<?php if ($i == 0) { echo "i equals 0"; } elseif ($i == 1) { echo "i equals 1"; } elseif ($i == 2) { echo "i equals 2"; } switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; } ?>
La structure switch peut utiliser String
<?php switch ($i) { case "apple": echo "i is apple"; break; case "bar": echo "i is bar"; break; case "cake": echo "i is cake"; break; } ?>
Pour éviter les erreurs, il est très important de comprendre comment switch est exécuté. Les instructions switch sont exécutées ligne par ligne (en fait instruction par instruction). Au départ, aucun code n'est exécuté. Ce n'est que lorsque la valeur d'une instruction case correspond à la valeur de l'expression switch que PHP commencera à exécuter l'instruction jusqu'à la fin du bloc switch (comme une instruction return) ou jusqu'à ce que la première instruction break soit rencontrée. Si vous n'écrivez pas break à la fin du segment d'instruction du cas, PHP continuera à exécuter le segment d'instruction dans le cas suivant. Par exemple :
<?php switch ($i) { case 0: echo "i equals 0"; case 1: echo "i equals 1"; case 2: echo "i equals 2"; } ?>
Remarque : si $i est égal à 3, PHP n'exécutera aucune instruction echo ! Cependant, si $i est égal à 0, PHP exécutera toutes les instructions echo ! Si $i est égal à 1, PHP exécutera les deux instructions echo suivantes. Ce n'est que si $i est égal à 2 que vous obtenez le résultat "attendu" - juste "i est égal à 2". Il est donc important de ne pas oublier les instructions break (même si l’on veut délibérément éviter de les fournir dans certains cas).
La condition n'est évaluée qu'une seule fois dans l'instruction switch et comparée à chaque instruction case. La condition est à nouveau évaluée dans l'instruction elseif. Si la condition est plus complexe qu’une simple comparaison ou si elle est dans une boucle plusieurs fois, il peut être plus rapide d’utiliser une instruction switch.
Les instructions d'un cas peuvent également être vides, ce qui transfère simplement le contrôle aux instructions du cas suivant.
<?php switch ($i) { case 0: case 1: case 2: echo "i is less than 3 but not negative"; break; case 3: echo "i is 3"; } ?>
Un cas particulier de cas est par défaut. Il correspond à n’importe quel cas qui ne correspond à aucun autre cas. Par exemple :
<?php switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; default: echo "i is not equal to 0, 1 or 2"; } ?>
case expression peut être n'importe quelle expression qui s'évalue en un type simple, c'est-à-dire un entier ou un flottant ainsi qu'une chaîne. Vous ne pouvez pas utiliser de tableaux ou de objets à moins qu'ils ne soient déréférencés vers des types simples.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!