Home > Backend Development > PHP Tutorial > PHP switch statement syntax example and efficiency comparison with ifelse

PHP switch statement syntax example and efficiency comparison with ifelse

伊谢尔伦
Release: 2023-03-11 07:54:01
Original
2159 people have browsed it

Switch statement is also the longest common logical control statement in object-oriented programming statements. Switch statements are used to perform different actions based on multiple different conditions - that is, when the conditions are different, different logical operations are performed. It is similar to the switch usage in other statements, but note that there is a break statement.

Standard syntax of switch statement in 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;
}
Copy after login

Example:

switch($i){
  case 1:
    echo 1;
    break;
  case 2:
    echo 2;
    break;
  default:
    echo 'others';
}
Copy after login

You can also use switch to determine a value range, or in a case Custom conditions.

<?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>";
}
?>
Copy after login

Simple example

<?php 
 //switch细节 
 //情况一:数值匹配的时候自动转换成字串 
 $a=1; 
 switch($a){ 
  case "1": 
    echo &#39;hello1&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况二:数值匹配的时候自动转换成字符 
 $a=1; 
 switch($a){ 
  case &#39;1&#39;: 
    echo &#39;hello2&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况三:字符匹配的时候自动转换成数值 
 $a=&#39;1&#39;; 
 switch($a){ 
  case 1: 
    echo &#39;hello3&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况四:字串匹配的时候自动转换成数值 
 $a="1"; 
 switch($a){ 
  case 1: 
    echo &#39;hello4&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况五:float也可以匹配 
 $a=1.1; 
 switch($a){ 
  case 1.1: 
    echo &#39;hello5&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况六:非0是true 
 $a=true; 
 switch($a){ 
  case 1: 
    echo &#39;hello6&#39;; 
    break; 
  case true: 
    echo &#39;hello61&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况七:能匹配boolean 
 $a=true; 
 switch($a){ 
  case true: 
    echo &#39;hello7&#39;; 
    break; 
  case 2: 
    echo &#39;hello71&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况八:能匹配null 
 $a=null; 
 switch($a){ 
  case 2://&#39;&#39; "" false 0 都能进入 
    echo &#39;hello8&#39;; 
    break; 
  case null: 
    echo &#39;hello81&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况九:退出顺序 
 $a=5; 
 switch($a){ 
  case 1: 
    echo &#39;hello6&#39;; 
    break; 
  case 2: 
    echo &#39;我是2号出口&#39;; 
    break; 
  case 5: 
    echo &#39;我是5号出口&#39;; 
    //break; 
  case true: 
    echo &#39;hello61&#39;; 
    break; 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
  //情况十:退出顺序 
 $a=50; 
 switch($a){ 
  default: 
    echo &#39;sorry none is the same!&#39;; 
    //break; 
  case 50: 
    echo &#39;hello6&#39;; 
    //break; 
  case 2: 
    echo &#39;我是2号出口&#39;; 
    break; 
  case 5: 
    echo &#39;我是5号出口&#39;; 
    //break; 
  case 6: 
    echo &#39;hello61&#39;; 
    break; 
 } 
 echo &#39;<br/>&#39;.&#39;成功退出····&#39;; 
 echo &#39;<hr/>&#39;; 
?>
Copy after login

Operation results

hello1
成功退出····
hello2
成功退出····
hello3
成功退出····
hello4
成功退出····
hello5
成功退出····
hello6
成功退出····
hello7
成功退出····
hello81
成功退出····
我是5号出口hello61
成功退出····
hello6我是2号出口
成功退出····
Copy after login

No matter what language a program is written in, the running efficiency of the code must be taken into consideration. After consulting some information, switch and ifelse each have superior efficiency in different 'environments'.

1. When the value being judged is a constant (fixed value), the operating efficiency of switch is higher than that of ifelse;

$changliang=3;   // 变判断的值为常量
switch($changliang){
  case 1:
    echo &#39;常量值为1&#39;;
    break;   // 跳出循环
  case 2:
    echo &#39;常量值为2&#39;;
    break;
  case 3:
    echo &#39;常量值为3&#39;;
    break;
}
Copy after login

2. When the judged value is a variable, the operating efficiency of ifelse is higher than that of switch. Ifelse implements the policy of judging from the first condition to the last else, so it is beneficial to learn to use switch;

$a = $_GET[&#39;a&#39;]; // 通过get传值后接值; 被判断的值
if($a=1){
  echo &#39;变量a的值为1&#39;;
}elseif($a=2){
  echo &#39;变量a的值为2&#39;;
}elseif($a=3){
  echo &#39;变量a的值为3&#39;;
}else{
  echo &#39;变量a的值为不知道&#39;;
}
Copy after login

The above is the detailed content of PHP switch statement syntax example and efficiency comparison with ifelse. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template