php : cas d'utilisation de l'instruction switch case

黄舟
Libérer: 2023-03-11 11:26:01
original
4002 Les gens l'ont consulté

L'instruction switch est utilisée pour effectuer différentes actions en fonction de différentes conditions. Cet article vous présente un exemple d'utilisation détaillé de l'instruction switch en PHP, qui implique des points de connaissances sur l'utilisation du switch. Les amis intéressés par l'utilisation du switch peuvent apprendre ensemble grâce à cet article. switch est une instruction Switch, donc de nombreux amis ne connaissent que l'utilisation d'une simple instruction switch. Ci-dessous, je vais vous donner une introduction détaillée à l'utilisation d'exemples switch.


La raison pour laquelle on l'appelle utilisation "avancée" est que je n'ai même pas maîtrisé l'utilisation la plus élémentaire de Switch, donc ce dont je parlerai ensuite est en fait son utilisation de base ! 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 :

Exemple n°1 Structure de commutateur


<?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;
}
?>
Copier après la connexion
L'exemple n°2 de structure de commutateur peut être utilisée

String


Point clé : (C'est ce que je n'ai jamais compris auparavant !)
<?php
switch ($i)
{
 case "apple":
 echo "i is apple";
 break;
 case "bar":
 echo "i is bar";
 break;
 case "cake":
 echo "i is cake";
 break;
}
?>
Copier après la connexion


Pour éviter les erreurs, il est très important de comprendre comment le 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 :


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).
<?php
switch ($i)
{
 case 0:
 echo "i equals 0";
 case 1:
 echo "i equals 1";
 case 2:
 echo "i equals 2";
}
?>
Copier après la connexion


[Efficacité] Dans l'instruction switch, la condition n'est évaluée qu'une seule fois et utilisée pour comparer avec 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.


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:
 case 1:
 case 2:
 echo "i is less than 3 but not negative";
 break;
 case 3:
 echo "i is 3";
}
?>
Copier après la connexion


case expression peut être n'importe quelle expression qui s'évalue en un type simple, c'est-à-dire un nombre entier ou à virgule flottante ainsi qu'une chaîne. Les tableaux ou les objets ne peuvent pas être utilisés à moins qu'ils ne soient déréférencés vers des types simples.
<?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";
}
?>
Copier après la connexion


[Pratique] Sur la base des points de connaissances ci-dessus, écrivez une fonction comme celle-ci : Calculer le nombre d'octets réellement représentés par la valeur de capacité


Remarque spéciale : lorsque $val = 400M, le cas 'm' est atteint et $val *= 1024 en dessous est exécuté, mais comme il n'y a pas de langage de rupture, le cas 'k' continuera à être atteint, et $val en dessous sera exécuté *= 1024; équivaut donc à exécuter 400 * 1024 * 1024 au total.
<?php
/**
 * 返回字节数
 *
 * @param string $val 如 400M
 */
function return_bytes($val = &#39;&#39;)
{
 $val = trim($val);
 $last = strtolower($val{strlen($val)-1});
 switch ($last)
 {
 case &#39;g&#39;:
  $val *= 1024;
 case &#39;m&#39;:
  $val *= 1024;
 case &#39;k&#39;:
  $val *= 1024;
 }
 return $val;
}
$memorylimit = ini_get(&#39;memory_limit&#39;);
echo $memorylimit, &#39;<br/>&#39;;
echo return_bytes($memorylimit);
输出:
400M
419430400
Copier après la connexion

Ce qui précède est la description complète de cet article. J'espère qu'il sera utile à tout le monde d'apprendre à utiliser Switch.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!