如果“汽车”或“法拉利”作为输入,则应打印“汽车或法拉利”。我怎样才能实现它?
<?php
$car ='333';
switch($car)
{
case car OR ferrari:
print("car or ferrari");
break;
case cat:
print("cat");
break;
default:
print("default");
break;
}
?>
答案 0 :(得分:26)
使用两个case
子句:
case 'car':
case 'ferrari':
print("car or ferrari");
break;
了解如何执行
switch
语句以避免错误非常重要。switch
语句逐行执行(实际上,逐个语句)。一开始,没有代码被执行。只有当case
语句的值与switch
表达式的值匹配时,PHP才会开始执行语句。 PHP继续执行语句,直到switch
块结束,或者第一次看到break
语句。如果您没有在案例的语句列表末尾写一个break
语句,PHP将继续执行以下案例的陈述。
答案 1 :(得分:5)
你可以简单地“理解”你想要处理的案件:
<?php
$auto ='333';
switch($auto)
{
case car:
case ferrari:
print("car or ferrari");
break;
case kissa:
print("cat");
break;
default:
print("default");
break;
}
答案 2 :(得分:2)
switch($car)
{
case car:
case ferrari:
print("car or ferrari");
break;
case cat:
print("cat");
break;
default:
print("default");
break;
}
在第一个break
陈述之前,案件“落空”。这也意味着您在break
案例中不需要default
。
答案 3 :(得分:1)
switch($car) {
case 'car':
case 'ferrari':
print("car or ferrari");
break;
case 'cat':
print("cat");
break;
default:
print("default");
break;
}
这是利用switch()
语句的'fall-through'属性。基本上,一个部分不会停在case
,它会停在break
(或退出该函数的其他操作)。
我冒昧地应用了我更喜欢的开关缩进,这使得它们只使用了一个缩进级别,我认为这是合适的,因为从逻辑上讲,switch
及其cases
是同一构造的所有元素。因此,在switch
中使用两个缩进级别不会传达任何有用的信息。
答案 4 :(得分:1)
我不知道PHP是否支持这个,但在C中,你可以这样做:
case car:
case ferrari:
print("car or ferrari");
break;
这个想法是,用于处理汽车外壳的代码将一直运行,直到它达到中断语句。至于风格,应该避免。