Php 如何在切换方法中添加多个条件案例?
有没有一种方法可以在php中的switch方法中包含多个case?是的,这是可能的 下面是一个例子Php 如何在切换方法中添加多个条件案例?,php,Php,有没有一种方法可以在php中的switch方法中包含多个case?是的,这是可能的 下面是一个例子 <? $i = 1; $j = 10; switch($i) { case "2": echo "The value is 2"; break; case ($i==1 && $j==10):
<?
$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;
}
?>
简单地嵌套交换机有什么问题
$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;
}
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
?>
我不经常使用这种结构(相反,我更喜欢避免这种复杂的逻辑),但有时会出现一个复杂的
if-then
语句,它可以使这样的代码片段更容易阅读。如果使用$I=0和$j=10,以及一个case($I==0&$j==10),这会给我们带来什么?您的示例之所以有效,是因为$i==1&&$j==10的计算结果为布尔值True,而在PHP的松散键入中,$i等于True,值为$1。如果$i的值为0,($i==1&&$j==10)仍然等同于布尔值True,但是松散类型比较与$i的值0相对,后者等同于布尔值false。。。。因此不匹配是因为案例“2”将$i键入字符串,然后如果$i不为空,$i==1变为true==true吗?这很无聊,试试starx中的一个,速度更快
second case is true