两者之间的差异为“空”空";和空";在PHP中

两者之间的差异为“空”空";和空";在PHP中,php,null,identity,equality,Php,Null,Identity,Equality,可能重复: 我有下面的代码片段,我不明白为什么会用3种不同的方式计算NULL。考虑变量 $xAddiddFieleMeSexLoad < /代码>未知,我们不知道它仍然是数组还是null。这就是我们要检查的 //----------------------------------------------- if (is_null($uploaded_filenames_array)){ echo "is_null"; } else{ echo "is_NOT_null"; }

可能重复:

我有下面的代码片段,我不明白为什么会用3种不同的方式计算NULL。考虑变量<代码> $xAddiddFieleMeSexLoad < /代码>未知,我们不知道它仍然是数组还是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 

有人能帮助理解这三种检查NULL的方法之间的编程差异吗?

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

>> "123" == 123
<< true
>> "123" === 123
<< false
你应该看看这个。也无需使用
is_null
函数仅检查
null
=
更快…

为空($a)
$a===null
相同

(保存一个函数调用时,
$a===null
is\u null($a)
快一点,但没关系,只要选择您喜欢的样式即可。)

有关
==
==
的区别,请阅读

$a===null
仅当
$a
null
时才为true

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

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

==
操作符测试相同的值和类型。空字符串的计算结果可能为null,但它不是
null
类型-因此此操作失败

=
操作符基本上是检查它们是否几乎相同——这样,对相同的值进行求值。如果为空,则计算结果将为null,因此将失败


is\u null
函数进行了相当彻底的检查-更像是
==
操作符。

所以
is\u null
==
相同?不,
is\u null
检查提供的值是否不是
null
,所以:
函数is\u null($value){return$value===null;}
is\u null等于“==”。这个问题怎么是一个完全相同的问题?这个问题没有提到的是空的。+1用于用额外的信息很好地编辑它:)-1用于用与问题无关的额外信息很好地编辑它:)@salathe那么什么是不相关的部分?:)“仅当”?未设置的值呢?