在PHP中,PHP中is_null
和==null
之间有什么区别?两者都返回真实的资格是什么?
答案 0 :(得分:64)
is_null
与=== null
相同。当变量为null
(或未设置)时,两者都返回true。
请注意,我使用的是===
而不是==
。 ===
比较类型和值。
答案 1 :(得分:57)
所以你可以更好地理解它:
$a = null;
$b = 0;
is_null($a) // TRUE
$a == null // TRUE
$a === null // TRUE
is_null($b) // FALSE
$b == null // TRUE
$b === null // FALSE
答案 2 :(得分:13)
php.net网站上有几个非常好的图表,显示了不同的价值观如何反应:
答案 3 :(得分:5)
您可以检查 is_null()和 null === $ var
之间的比较答案 4 :(得分:5)
===null
。
Rasmus说,null的测试比isset
的测试快。他的建议是充分理由认真看待差异。如果您在一个网页请求中有一个小循环通过相同的代码数千次,那么差异就会很大。
UPD:is_null和严格比较的一些速度测试:
PHP 5.5.9
is_null - float(2.2381200790405)
=== - float(1.0024659633636)
PHP 7.0.0-dev
is_null - float(1.4121870994568)
=== - float(1.4577329158783)
答案 5 :(得分:3)
==
不检查类型,所以某种程度上,某些地方,如字符串''
或字符串'null'
可能会等于null。
使用三等号===
,不仅可以检查两个值是否相等,而且它们的类型相同。