滚动
PHP课程 - 第8-2课 - switch 条件语句
在上一课中,我们学习了 if 条件语句。
if 语句允许我们检查条件是否为真,并根据检查结果执行相应的操作。
现在假设我们需要执行 10 个不同的检查,并根据结果执行 10 种不同的操作。当然,我们可以使用多个 if 来实现:
<?php if($x == 1){ // 操作 } if($x == 2){ // 操作 } if($x == 3){ // 操作 } if($x == 4){ // 操作 } if($x == 5){ // 操作 } if($x == 6){ // 操作 } if($x == 7){ // 操作 } if($x == 8){ // 操作 } if($x == 9){ // 操作 } if($x == 10){ // 操作 } ?>
这种写法虽然可以工作,但对于多重条件判断来说并不优雅。
在这种情况下,最好使用 switch 语句。
PHP switch 语句
switch 语句可以让我们在多个可能的条件中检查一个变量的值。我们将上面的例子改写成 switch 形式:
<?php switch ($x){ case 1: // 操作 break; case 2: // 操作 break; case 3: // 操作 break; case 4: // 操作 break; case 5: // 操作 break; case 6: // 操作 break; case 7: // 操作 break; case 8: // 操作 break; case 9: // 操作 break; case 10: // 操作 break; default: // 当以上条件都不符合时执行的操作 } ?>
如前所述,这两种方式执行效果相同。不同的是,在 switch 语句中,我们可以使用 default,当没有任何一个 case
匹配时,它将被执行。
现在让我们看看 switch 的结构。首先是关键字 switch
,其后圆括号内是要检查的表达式。这个表达式可以是数字或字符串。例如:
<?php switch ($x){ case 'Hello': break; case 'Bye': break; } ?>
花括号中包含所有的条件分支(case)及其要执行的操作:
<?php switch ($x){ case 'Hello': // 可能的值 print $x; // 操作 break; // 结束当前 case case 2: $x++; break; } ?>
每个 case
后面跟着一个值(字符串用引号,数字不需要),然后是冒号。
接下来写出当该条件成立时要执行的代码。
最后使用 break; 来结束当前分支的执行,否则程序会继续执行下一个 case。
在所有 case 后,我们可以使用 default,当其他条件都不匹配时执行它。
总结:
1. 不要忘记在每个 case 的末尾写上 break;
。
2. 对于 default 分支,可以省略 break,因为它已经是最后一个。
下面是 switch 的流程图:
作为示例,我们可以根据天数计算星期几:
<?php // $D 是从星期一开始的天数 $x = $D % 7; switch ($x){ case 1: print '星期一'; break; case 2: print '星期二'; break; case 3: print '星期三'; break; case 4: print '星期四'; break; case 5: print '星期五'; break; case 6: print '星期六'; break; case 7: print '星期日'; break; } ?>
这样我们就可以通过 switch 语句轻松地根据不同的数值输出相应的星期。