在PHP的switch语句中,case条件通常是一个固定的值,但实际上你也可以在case条件中使用表达式,例如:
$num = 5;
switch(true) {
case $num > 0 && $num < 10:
echo "Number is between 0 and 10";
break;
case $num > 10 && $num < 20:
echo "Number is between 10 and 20";
break;
default:
echo "Number is not in range";
}
在上面的例子中,我们使用了表达式$num > 0 && $num < 10
作为case条件,这样就可以根据$num的值判断数字所属的范围。
在普通的switch语句中,当匹配到一个case时,会执行该case及其后面的所有case,直到遇到break语句为止。但是有时候我们可能希望让某个case执行完毕后,继续执行后面的case,这时可以使用fall-through效果,例如:
$num = 2;
switch($num) {
case 1:
echo "One";
case 2:
echo "Two";
case 3:
echo "Three";
break;
default:
echo "Number is not in range";
}
上面的例子中,当$num的值为2时,会输出"Two"、“Three”,因为没有在case 2和case 3之间加上break语句,从而实现了fall-through效果。
有时候我们可能需要在switch语句中实现多条件匹配,这时可以使用default case来实现,例如:
$num = 5;
switch(true) {
case $num == 1 || $num == 2:
echo "One or Two";
break;
case $num == 3 || $num == 4:
echo "Three or Four";
break;
default:
echo "Number is not in range";
}
在上面的例子中,我们使用了default case来实现多条件匹配,当$num的值既不是1也不是2,也不是3也不是4时,会执行default case中的代码。