这三个方法都是检查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))
但我认为两者都好