【问题标题】:difference between is_null "== NULL" and "=== NULL" in PHP [duplicate]PHP中is_null“== NULL”和“=== NULL”之间的区别[重复]
【发布时间】:2012-08-22 19:00:22
【问题描述】:

可能重复:
php == vs === operator

我有以下代码片段,我不明白为什么要以 3 种不同的方式评估 NULL。将变量 $uploaded_filenames_array 视为 UNKNOWN - 我们不知道它仍然是数组还是 NULL。这就是我们要检查的内容。

//-----------------------------------------------
if (is_null($uploaded_filenames_array)){
    echo "is_null";
}
else{
    echo "is_NOT_null";
}
//-----------------------------------------------
if ($uploaded_filenames_array == NULL){
    echo "NULL stuff";
}
else{
    echo "not NULL stuff";
}
//-----------------------------------------------
if ($uploaded_filenames_array === NULL){
    echo "NULL identity";
}
else{
    echo "not NULL identity";
}
//-----------------------------------------------

我收到以下回复:

is_NOT_null 
NULL stuff 
not NULL identity 

有人可以帮助理解这 3 种检查 NULL 的方法之间的程序差异是什么吗?

【问题讨论】:

标签: php null identity equality


【解决方案1】:

== 检查 value 是否相等,例如:

>> "123" == 123
<< true

=== 检查值和类型是否相等,例如:

>> "123" === 123
<< false

【讨论】:

  • 所以is_null=== 相同?
  • 不,is_null 检查提供的值是否不是null,所以:function is_null($value) { return $value === null; }
【解决方案2】:

您应该阅读此http://php.net/manual/en/language.operators.comparison.php。也无需使用is_null 函数仅检查NULL=== 更快...

【讨论】:

    【解决方案3】:

    is_null($a)$a === null 相同。

    $a === nullis_null($a) 保存一个函数调用要快一点,但没关系,选择你喜欢的样式即可。)

    =====的区别,请阅读PHP type comparison tables

    $a === null 仅当 $anull 时为真。

    但是对于==,下面也返回true

    null == false
    null == 0
    null == array()
    null == ""
    

    【讨论】:

    • +1 用额外的信息很好地编辑它:)
    • -1 用与问题无关的额外信息很好地编辑它:)
    • @salathe 那么不相关的部分是什么? :)
    • “仅当”?未设置的值呢? stackoverflow.com/a/15607428/543738
    【解决方案4】:

    === 运算符测试相同的值和相同的类型。空字符串可能评估为 null,但它不是 null 类型 - 因此失败。

    == 运算符基本上会检查它们是否几乎相同 - 以此来评估相同的值。为空,这将评估为 null,因此失败。

    is_null 函数进行了相当彻底的检查 - 更像 === 运算符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 2013-01-12
      • 2010-09-05
      相关资源
      最近更新 更多