两者之间的差异为“空”空";和空";在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那么什么是不相关的部分?:)“仅当”?未设置的值呢?