[英]php: is valid to use if/else in this way?
有没有办法优化这样的东西?
我已经尝试过了,但是行不通(至少在php中)
$foo = 6;
if ($foo != (3 or 5 or 10)) echo "it work";
elseif($foo < (5 or 10)) echo "it work again";
else echo "it doesn't work;"
我想知道是否有更好的方法来编写这种验证。
但是,如果在其他语言中也可以使用这种方法,请告诉我。
($foo != (3 or 5 or 10)) -> in_array($foo,array(3,5,10))
如果我想要类似的东西,做同样的工作
($foo != (3 and 5 and 10))
不,这不对。 您正在针对$foo
BOOLEAN结果or
操作的$foo
值进行测试。 归结为
if ($foo != (true or true or true))
这很简单
if ($foo != true)
if (!$foo)
如果要针对多个值测试单个值,可以尝试
if(!in_array($foo, array(3,5,10))) { ... }
代替。 对于您的<
版本,此功能无效。 您必须分别测试每个值:
if (($foo < 5) or ($foo < 10)) { ... }
尽管从技术上讲这有点多余,因为如果$ foo小于5,则它已经小于10。
第一次可以使用
if(!in_array($foo, [5,10,15]))
第二件事在任何语言中都不起作用,因为对于少于10的每件事,少于5或10都是正确的,因此不需要5。但是我明白你的意思。 我不知道这样做的快速方法
在python中,您可以执行以下操作:
if(5 < x < 10)
a, b = b, a // swapping these two
我同意其他答案,并且,如果您还有更多工作要做,您还可以执行以下操作:
<?php
$x = 3;
switch ($x)
{
case 6:
$x = 5;
case 3:
case 7:
$x = 5;
case 5:
echo 'It is working' . PHP_EOL;
break;
}
编辑 :感谢DanFromGermany指出堆叠的箱子。 添加它们作为示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.