【问题标题】:PHP null var exists [duplicate]PHP null var存在[重复]
【发布时间】:2012-03-14 19:49:06
【问题描述】:

可能重复:
Check if value isset and null

如果我有$v = NULL;,我如何检查$v 是否存在并且是NULL

isset($v) => false //because of NULL, but $v exists

【问题讨论】:

    标签: php


    【解决方案1】:

    你不能,null 相当于一个不存在的变量:

    如果满足以下条件,则认为变量为空

    • 它被分配了常量NULL
    • 尚未设置任何值。
    • 一直是unset()

    仅对于数组,您可以使用 array_key_exists 检查键是否存在,尽管它的值为 null

    【讨论】:

    • +1 这个答案比其他答案更正确,因为它解决了问题的两个部分($v 存在且为空)。
    • 谢谢你,这真的很有帮助。
    • 呃,array_key_exists$GLOBALS 一起使用怎么样? php.net/manual/en/reserved.variables.globals.php
    • @kirilloid 这会起作用——但仅限于global variables
    • 我知道,这个和JS差不多。您不能使用window[name] 通过名称访问全局变量,但对于当前范围内的变量来说这是不可能的。
    【解决方案2】:

    试试is_null($v)

    The PHP online docs are friendly!

    【讨论】:

    • 如果 $v 不存在,它会返回警告。
    • @Yekver 您需要将两者结合起来。
    • @Xeon06 你会怎么做?就isset()is_null()而言,两者是没有区别的。
    • @Null 啊,你说得对,我没想到。
    【解决方案3】:

    您应该小心对可能是null 的变量使用isset。这是为将来的错误和问题做好准备的好方法。

    您现在可以做的是使用is_null 作为附加测试。

    【讨论】:

      【解决方案4】:

      如果你想把它们放在一起来测试存在性和空值

      <?php
      if(!is_null($v)){
      // do something
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-17
        • 2014-04-04
        • 2016-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多