PHP is_null()和== null

时间:2012-03-12 17:16:20

标签: php null

在PHP中,PHP中is_null==null之间有什么区别?两者都返回真实的资格是什么?

6 个答案:

答案 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网站上有几个非常好的图表,显示了不同的价值观如何反应:

Type Comparison - php.net

答案 3 :(得分:5)

您可以检查 is_null() null === $ var

之间的比较

Good comparison between two

答案 4 :(得分:5)

PHP的发明者Rasmus Lerdorf推荐

===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。

使用三等号===,不仅可以检查两个值是否相等,而且它们的类型相同。