服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - php中switch语句用法详解

php中switch语句用法详解

2020-11-17 14:46PHP教程网 PHP教程

Switch语句也是面向对象编程语句中最长常见的逻辑控制语句了。Switch 语句用于执行基于多个不同条件的不同动作 – 即当条件不同的时候,执行不同的逻辑操作。

本文介绍php中的switch语句的用法,它跟其他语句中的switch用法差不多的,但注意有有一个break语句。

PHP中switch语句的标准语法:

?
1
2
3
4
5
6
7
8
9
10
11
12
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;
}

举例:

?
1
2
3
4
5
6
7
8
9
10
switch($i){
  case 1:
    echo 1;
    break;
  case 2:
    echo 2;
    break;
  default:
    echo 'others';
}

也可以使用switch来判断一个取值范围,或者说是在case中自定义条件。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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>";
}
?>

简单示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?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/>';
?>

运行结果

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hello1
成功退出····
hello2
成功退出····
hello3
成功退出····
hello4
成功退出····
hello5
成功退出····
hello6
成功退出····
hello7
成功退出····
hello81
成功退出····
我是5号出口hello61
成功退出····
hello6我是2号出口
成功退出····

延伸 · 阅读

精彩推荐