php中switch语句用法详解

时间:2022-12-04 08:52:40

本文介绍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号出口
成功退出····