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',上述示例将具有相同的输出。