【问题标题】:PHP Comparisons with multiple conditionsPHP 多条件比较
【发布时间】:2015-09-15 16:15:11
【问题描述】:

这样写对吗?

 if($site!=1 || $site!=4)

如果站点 ID 不是 1 或 4,我想执行代码。 OR 可以有两个否定吗?因为它不起作用。

谢谢!

【问题讨论】:

    标签: php comparison logic comparison-operators


    【解决方案1】:

    当您使用|| 时,如果其中任何一个满足,它将被执行。当您不希望两者都满足时,您需要使用&&。应该是——

    if($site!=1 && $site!=4)
    

    它将检查这两个条件,即$site 不等于14

    或者你可以使用in_array -

    if(!in_array($site, array(1, 4)))
    

    目前它将首先检查$site 是否为1,如果不是,它将进入条件并忽略其余条件。所以4不会被检查。

    【讨论】:

    • 好的,谢谢,但在我看来,这是两种不同的情况:site1 或 site4。并且必须执行 && 这两个条件。但它的工作原理感谢您的解释。
    【解决方案2】:

    虽然你已经有了正确答案,但你也可以使用

    if (!in_array($site,array(1,4)))
    

    如果有很多数字要检查,这会简化它。这在 PHP 5.4+ 中更简单

    if (!in_array($site,[1,4]))
    

    【讨论】:

    • 这也是一个好技巧。如果需要检查许多值,会有很大帮助。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2012-11-21
    • 2018-06-22
    相关资源
    最近更新 更多