【发布时间】:2015-09-15 16:15:11
【问题描述】:
这样写对吗?
if($site!=1 || $site!=4)
如果站点 ID 不是 1 或 4,我想执行代码。 OR 可以有两个否定吗?因为它不起作用。
谢谢!
【问题讨论】:
标签: php comparison logic comparison-operators
这样写对吗?
if($site!=1 || $site!=4)
如果站点 ID 不是 1 或 4,我想执行代码。 OR 可以有两个否定吗?因为它不起作用。
谢谢!
【问题讨论】:
标签: php comparison logic comparison-operators
当您使用|| 时,如果其中任何一个满足,它将被执行。当您不希望两者都满足时,您需要使用&&。应该是——
if($site!=1 && $site!=4)
它将检查这两个条件,即$site 不等于1 或4。
或者你可以使用in_array -
if(!in_array($site, array(1, 4)))
目前它将首先检查$site 是否为1,如果不是,它将进入条件并忽略其余条件。所以4不会被检查。
【讨论】:
虽然你已经有了正确答案,但你也可以使用
if (!in_array($site,array(1,4)))
如果有很多数字要检查,这会简化它。这在 PHP 5.4+ 中更简单
if (!in_array($site,[1,4]))
【讨论】: