所有三种方法都是用于检查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
的类型是否为null类型(其他几个测试$sth
的值)。
===
和is_null
技术将始终给出相同的答案;==
有时会给出不同的答案。
is_null
不是最快的方法,因为它会增加函数开销。虽然速度差异不会太大。+1。 - Shef第一个测试仅检查$sth
是否等于NULL,而0也将为真。
第二个检查类型是否相等。因此,只有$sth
的值为NULL
时才为真。
第三个仅适用于变量,而不适用于函数结果。
还有一个小提示:我偶尔会将if($sth == NULL)
误打成if($sth = NULL)
,这将导致难以找到的错误。最好输入if(NULL == $sth)
,如果您写错了,解释器将报错并指向正确的方向。
我会使用
if(is_null($sth))
但我认为两者都不错