这些方法之间的区别是什么,以及哪种方法可以正确检查NULL


What is the difference between these methods and which way properly checks for NULL?

这三个方法都是检查null,

if($sth == NULL)
if($sth === NULL)
if(is_null($sth))

哪条路是正确的?

他们检查三种不同的东西:

if ($sth == NULL)

检查$sth是否松散地等于null。这意味着如果$sth实际上是0,这将通过。

if ($sth === NULL)

检查$sth是否完全等于null

if (is_null($sth))

检查$sth类型是否为空类型(其他测试$sth)。

===is_null技术总是给出相同的答案;==有时会给出不同的答案。

第一个只测试$sth是否等于NULL,其中0也将为真。第二个检查类型是否也相等。所以只有NULL作为$sth的值为真。第三种方法只能处理变量而不能处理函数结果。

还有一个小提示:我有时会把if($sth == NULL)错打成if($sth = NULL),这会导致很难找到错误。最好输入if(NULL == $sth),当你写错时,你会得到一个解释器错误,它会给你指明正确的方向。

我会用

if(is_null($sth))

但我认为两者都好