有没有办法在php中的switch方法中包含多个case?
答案 0 :(得分:9)
switch
语句的工作原理是依次评估每个case
表达式,并将结果与switch
表达式进行比较。如果两个表达式是等价的,则执行case块(在break
/ continue
构造建立的约束内)。您可以使用此事实将任意布尔表达式包含为case
表达式。例如:
<?php
$i = 3;
$k = 'hello world';
switch (true) {
case 3 == $i and $k == 'hi there';
echo "first case is true\n";
break;
case 3 == $i and $k == 'hello world';
echo "second case is true\n";
break;
} //switch
?>
输出:
second case is true
我不经常使用这种结构(而是更喜欢避免这种复杂的逻辑),但有时会出现一个复杂的if-then
语句可能会被使用,并且可以使这些片段更容易阅读。
答案 1 :(得分:2)
简单地嵌套交换机有什么问题?
$i = 1;
$j = 10;
switch($i) {
case 2:
echo "The value is 2";
break;
case 1:
switch($j) {
case 10:
echo "Exception Case";
break;
default:
echo "The value is 1";
break;
}
break;
default:
echo "Invalid";
break;
}
答案 2 :(得分:-1)
是的,有可能
这是一个以
开头的例子<?
$i = 1;
$j = 10;
switch($i) {
case "2":
echo "The value is 2";
break;
case ($i==1 && $j==10):
echo "Your exceptional Switch case is triggered";
break;
default:
echo "Invalid";
break;
}
?>