在switch case语句中可以使用“or”或“and”吗?我想要实现以下内容:
case 4 || 5:
echo "Hilo";
break;
在switch case语句中可以使用“or”或“and”吗?我想要实现以下内容:
case 4 || 5:
echo "Hilo";
break;
不行,但你可以这样做:
case 4:
case 5:
echo "Hilo";
break;
请参阅PHP手册。
编辑:关于AND情况:switch只检查一个变量,所以这种情况下不起作用,你可以这样做:
switch ($a) {
case 4:
if ($b == 5) {
echo "Hilo";
}
break;
// Other cases here
}
if ( $a==4 && $b==5 ) {}
。这通常更简单和简洁。 - DisgruntledGoat你有效地实现这一点的方式是:
CASE 4 :
CASE 5 :
echo "Hilo";
break;
这被称为带有贯穿的switch语句。来自Wikipedia:
"在C语言和类似构造的语言中,缺乏break关键字以从一个块到下一个块的程序执行贯穿性是广泛使用的。例如,如果n = 2,则第四个case语句将匹配控制变量。下一行输出“n是偶数”。程序继续通过接下来的3个case语句并到达下一行,该行输出“n是素数”。此后的break行使switch语句结束。如果用户输入多个数字,则执行默认块,生成错误消息。"
你可以只是简单地将这些案例堆叠在一起:
switch($something) {
case 4:
case 5:
//do something
break;
}
不,我认为那会被计算为 (4 || 5),始终为真,但你可以这样写:
case 4:
case 5:
// do something
break;
switch($a) {
case 4 || 5:
echo 'working';
break;
}