当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中使用switch case'或'?

如何解决《如何在PHP中使用switchcase'或'?》经验,为你挑选了6个好方法。

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

switch ($value) {

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

小智.. 489

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

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



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

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



2> Baba..:

如果你必须使用||,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;
}



3> nickf..:

我不会重新发布其他答案,因为它们都是正确的,但我只是补充一点,你不能将switch用于更复杂的语句,例如:测试一个值是否"大于3","在4到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那里使用一份声明.


`你不能使用开关来获得更多"复杂"的陈述`它是"不能"还是"不应该"?因为在你的例子中你可以`
我很高兴能够学到这一点.每次我用Basic-y语言构建一个项目时,我都会想念一个C风格的`switch()`,当我用C-ish语言工作时,我真的很想念`Select Case`,这真的很棒一种速记的方式,说"如果,如果,否则 - 如果......在这里有一大块".

4> John Peter..:

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

可能的开关案例:

(一世).一个简单的switch语句

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

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

示例:

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

(ⅱ).划分代码块

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

示例:

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;

(三).对多个案例使用fallthrough

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

示例:

案例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;

(ⅳ).高级切换:条件案例

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

示例:

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;
}

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



5> Craig..:

尝试

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



6> 小智..:

我建议你通过 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;
}

说明

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

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有