有没有办法在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语句的大多数语言中.
switch ($value) { case 1: case 2: echo "the value is either 1 or 2."; break; }
这被称为"通过"案件块.该术语存在于实现switch语句的大多数语言中.
如果你必须使用||
,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; }
问题是,大案件时既方法效率不高......想象1
到100
,这将很好地工作
$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; }
我不会重新发布其他答案,因为它们都是正确的,但我只是补充一点,你不能将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
那里使用一份声明.
请尝试本文中的以下示例: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; }
我认为这可以帮助您解决问题.
尝试
switch($value) { case 1: case 2: echo "the value is either 1 or 2"; break; }
我建议你通过 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中出来.