switch 语句用于根据多个不同条件执行不同动作。
PHP Switch 语句
如果您希望有选择地执行若干代码块之一,请使用 switch 语句。
语法
switch (n) { case label1: 如果 n=label1,此处代码将执行; break; case label2: 如果 n=label2,此处代码将执行; break; default: 如果 n 既不等于 label1 也不等于 label2,此处代码将执行; }
工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
使用嵌套的if else语句导致类似的行为,但是switch提供了更加优雅和最优的解决方案。
<?php $favcolor="blue"; switch ($favcolor) { case "red": echo "你最喜欢的颜色是red!"; break; case "blue": echo "你最喜欢的颜色是blue!"; break; case "green": echo "你最喜欢的颜色是green!"; break; default: echo "你最喜欢的颜色既不是red, blue, 也不是green!"; } ?>
以上代码最终输入就是"你最喜欢的颜色是blue!"
注意:每个案例后面的break关键字用于保持代码自动运行到下一种情况。如果你忘了break;声明,PHP会自动继续通过下一个case语句,即使情况不匹配。
<?php $i = 1; switch($i) { "1": echo 'One'; ; case "2": echo 'Two'; break; }
如果找不到匹配,则执行default默认语句。
<?php $x=5; switch ($x) { case 1: echo "One"; break; case 2: echo "Two"; break; default: echo "没有匹配"; } //Outputs "没有匹配" ?>
另外,default语句是可选的,因此也可以省略。
如果没有指定break语句,PHP将继续执行该语句,直到发现中断为止。如果您需要在多个情况下到达相同的输出,则可以使用此行为。
<?php $day = 'Wed'; switch ($day) { case 'Mon': echo '一个星期的第一天'; break; case 'Tue': case 'Wed': case 'Thu': echo '工作日'; break; case 'Fri': echo '星期五'; break; default: echo '周末'; } //Outputs "工作日" ?>
如果$day等于'Tue','Wed'或'Thu',上述示例将具有相同的输出。