首页 文章

如何在PHP中使用开关盒'or'?

提问于
浏览
188

有没有办法在php开关中使用'OR'运算符或等效运算符?例如,像这样:

switch ($value) {

case 1 || 2:
echo 'the value is either 1 or 2';
break;

}

10 回答

  • 112
    switch ($value) 
    {
       case 1:
       case 2:
          echo 'the value is either 1 or 2';
       break;
    }
    
  • 436

    尝试

    switch($value) {
        case 1:
        case 2:
            echo "the value is either 1 or 2";
            break;
    }
    
  • 1

    最好的方法可能是请求的其他方式 . 此外,这可以更容易和清楚地使用 .

    例:

    <?php 
    $go = $_REQUEST['go'];
    ?>
    <?php if ($go == 'general_information'){?>
    <div>
    echo "hello";
    }?>
    

    而不是使用不能与PHP一起使用的函数,尤其是在HTML中使用PHP时 .

  • 1

    我建议你通过http://php.net/manual/en/control-structures.switch.php(手册)

    switch ($your_variable)
    {
        case 1:
        case 2:
            echo "the value is either 1 or 2.";
        break;
    }
    

    explanation

    就像你要执行单个语句的值一样,你可以把它放在没有中断的地方,直到或除非发现中断它将继续执行代码,如果发现中断它将从交换机案例中出来 .

  • 15

    使用此代码:

    switch($a) {
    case 1:
    case 2:
        .......
        .......
        .......
        break;
    }
    

    块调用了1和2 .

  • 35

    我赢了't repost the other answers because they'一切都正确,但我'll just add that you can' t使用开关更多"complicated"语句,例如:测试一个值是"greater than 3","between 4 and 6"等等 . 如果你需要做类似的事情,坚持使用 if 语句,或者如果有的话特别强烈需要 switch 然后可以将它用于前面:

    switch (true) {
        case ($value > 3) :
            // value is greater than 3
        break;
        case ($value >= 4 && $value <= 6) :
            // value is between 4 and 6
        break;
    }
    

    但正如我所说,我个人在那里使用 if 声明 .

  • -1

    请尝试本文中的以下示例:http://phpswitch.com/

    Possible Switch Cases :

    (一世) . A simple switch statement

    切换声明是奇妙而神奇的 . 它是一种语言,允许您在值的不同选项之间进行选择,并根据设置的值运行不同的代码片段 .

    每个可能的选项由switch语句中的case给出 .

    Example :

    switch($bar)
    {
        case 4:
            echo "This is not the number you're looking for.\n";
            $foo = 92;
    }
    

    (ⅱ) . Delimiting code blocks

    切换的主要警告是每个案例都将继续进入下一个案例,除非你以休息方式停止它 . 如果将上述简单案例扩展到案例5:

    Example :

    case 4:
        echo "This is not the number you're looking for.\n";
        $foo = 92;
        break;
    
    case 5:
        echo "A copy of Ringworld is on its way to you!\n";
        $foo = 34;
        break;
    

    (三) . Using fallthrough for multiple cases

    因为switch会一直运行代码直到找到中断,所以很容易采用fallthrough的概念并为多个case运行相同的代码:

    Example :

    案例2:

    case 3:
    case 4:
        echo "This is not the number you're looking for.\n";
        $foo = 92;
        break;
    
    case 5:
        echo "A copy of Ringworld is on its way to you!\n";
        $foo = 34;
        break;
    

    (ⅳ) . Advanced switching: Condition cases

    PHP的开关不仅允许您打开特定变量的值:您可以使用任何表达式作为其中一种情况,只要它为要使用的案例提供值 . 举个例子,这是一个使用switch编写的简单验证器:

    Example :

    switch(true)
    {
        case (strlen($foo) > 30):
            $error = "The value provided is too long.";
        $valid = false;
        break;
    
        case (!preg_match('/^[A-Z0-9]+$/i', $foo)):
            $error = "The value must be alphanumeric.";
        $valid = false;
        break;
    
        default:
        $valid = true;
        break;
    }
    

    我认为这可以帮助您解决问题 .

  • -4
    switch ($value)
    {
        case 1:
        case 2:
            echo "the value is either 1 or 2.";
        break;
    }
    

    这被称为“通过”案件块 . 该术语存在于实现switch语句的大多数语言中 .

  • 9

    如果您必须使用 ||switch ,那么您可以尝试:

    $v = 1;
    switch (true) {
        case ($v == 1 || $v == 2):
            echo 'the value is either 1 or 2';
            break;
    }
    

    如果不是你的首选解决方案

    switch($v) {
        case 1:
        case 2:
            echo "the value is either 1 or 2";
            break;
    }
    

    问题是两种方法在处理大型案例时效率都不高......想象 1100 这样可以完美地工作

    $r1 = range(1, 100);
    $r2 = range(100, 200);
    $v = 76;
    switch (true) {
        case in_array($v, $r1) :
            echo 'the value is in range 1 to 100';
            break;
        case in_array($v, $r2) :
            echo 'the value is in range 100 to 200';
            break;
    }
    
  • 49

    http://php.net/manual/en/control-structures.switch.php示例

    $today = date("D");
    
        switch($today){
    
            case "Mon":
    
            case "Tue":
    
                echo "Today is Tuesday or Monday. Buy some food.";
    
                break;
    
            case "Wed":
    
                echo "Today is Wednesday. Visit a doctor.";
    
                break;
    
            case "Thu":
    
                echo "Today is Thursday. Repair your car.";
    
                break;
    
            default:
    
                echo "No information available for that day.";
    
                break;
    
        }
    

相关问题