Maison >développement back-end >tutoriel php >Exemple de syntaxe d'instruction de commutation PHP et comparaison d'efficacité avec ifelse
L'instruction Switch est également l'instruction de contrôle logique la plus longue et la plus courante parmi les instructions de programmation orientées objet . Les instructions Switch sont utilisées pour effectuer différentes actions en fonction de plusieurs conditions différentes : lorsque les conditions sont différentes, différentes opérations logiques sont effectuées. C'est similaire à l'utilisation de switch dans d'autres instructions, mais notez qu'il existe une instruction break.
Syntaxe standard de l'instruction switch en PHP :
switch (expression) { case label1: code to be executed if expression = label1; break; case label2: code to be executed if expression = label2; break; default: code to be executed if expression is different from both label1 and label2; }
Exemple :
switch($i){ case 1: echo 1; break; case 2: echo 2; break; default: echo 'others'; }
Vous pouvez également utiliser switch pour déterminer une plage de valeurs, ou It est de personnaliser les conditions du cas.
<?php header("content-type:text/html;charset=utf8"); $score=50; switch($score) { case $score>=90 && $score<=100: echo "优<br>"; break; case $score>=80 && $score<90: echo "良<br>"; break; case $score>=70 && $score<80: echo "中<br>"; break; case $score>=60 && $score<70: echo "及格<br>"; break; case $score>=0 && $score<60: echo "不及格<br>"; break; default: echo"成绩输入错误<br>"; } ?>
Exemple simple
<?php //switch细节 //情况一:数值匹配的时候自动转换成字串 $a=1; switch($a){ case "1": echo 'hello1'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况二:数值匹配的时候自动转换成字符 $a=1; switch($a){ case '1': echo 'hello2'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况三:字符匹配的时候自动转换成数值 $a='1'; switch($a){ case 1: echo 'hello3'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况四:字串匹配的时候自动转换成数值 $a="1"; switch($a){ case 1: echo 'hello4'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况五:float也可以匹配 $a=1.1; switch($a){ case 1.1: echo 'hello5'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况六:非0是true $a=true; switch($a){ case 1: echo 'hello6'; break; case true: echo 'hello61'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况七:能匹配boolean $a=true; switch($a){ case true: echo 'hello7'; break; case 2: echo 'hello71'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况八:能匹配null $a=null; switch($a){ case 2://'' "" false 0 都能进入 echo 'hello8'; break; case null: echo 'hello81'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况九:退出顺序 $a=5; switch($a){ case 1: echo 'hello6'; break; case 2: echo '我是2号出口'; break; case 5: echo '我是5号出口'; //break; case true: echo 'hello61'; break; default: echo 'sorry none is the same!'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; //情况十:退出顺序 $a=50; switch($a){ default: echo 'sorry none is the same!'; //break; case 50: echo 'hello6'; //break; case 2: echo '我是2号出口'; break; case 5: echo '我是5号出口'; //break; case 6: echo 'hello61'; break; } echo '<br/>'.'成功退出····'; echo '<hr/>'; ?>
Résultats d'exploitation
hello1 成功退出···· hello2 成功退出···· hello3 成功退出···· hello4 成功退出···· hello5 成功退出···· hello6 成功退出···· hello7 成功退出···· hello81 成功退出···· 我是5号出口hello61 成功退出···· hello6我是2号出口 成功退出····
Quelle que soit la langue dans laquelle vous écrivez un programme, vous devez tenir compte de l'efficacité du code. Après avoir consulté quelques informations, switch et ifelse ont chacun une efficacité supérieure dans différents « environnements ».
1. Lorsque la valeur jugée est une constante (valeur fixe), l'efficacité de fonctionnement du commutateur est supérieure à celle de
$changliang=3; // 变判断的值为常量 switch($changliang){ case 1: echo '常量值为1'; break; // 跳出循环 case 2: echo '常量值为2'; break; case 3: echo '常量值为3'; break; }
2. Lorsque la valeur jugée est une variable, l'efficacité opérationnelle de ifelse est supérieure à celle de switch. Ifelse met en œuvre la politique de jugement jusqu'au bout et jugera de la première condition à la dernière, il est donc avantageux d'apprendre à utiliser switch. ;
$a = $_GET['a']; // 通过get传值后接值; 被判断的值 if($a=1){ echo '变量a的值为1'; }elseif($a=2){ echo '变量a的值为2'; }elseif($a=3){ echo '变量a的值为3'; }else{ echo '变量a的值为不知道'; }
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!