如何在Switch方法中添加多个条件案例?

时间:2010-06-07 07:58:23

标签: php

有没有办法在php中的switch方法中包含多个case?

3 个答案:

答案 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;
     }
?>