PHP is_null()和== null

kel*_*080 46 php null

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

Roc*_*mat 64

is_null是一样的=== null.当变量为null(或未设置)时,两者都返回true .

请注意,我正在使用===而不是==. ===比较类型和价值.

  • 如果你需要知道`isset($ undefined)`vs`is_null($ undefined)`的确切实现,那么通过阅读源代码可以很容易地引出@Pacerier.如果它像鸭子一样嘎嘎叫,像鸭子一样走路. (2认同)
  • 如果它讨论了 `==` 和 `===` 之间的区别,这个答案会得到改进,因为 OP 询问了 `==`。有关有助于显示差异的一些测试用例,请参阅 Daniel Ribeiro 的回答。另请参阅 dleiftah 的答案,以获取彻底展示差异的图表链接。 (2认同)

Dan*_*iro 59

所以你可以更好地理解它:

$a = null;
$b = 0;

is_null($a) // TRUE
$a == null  // TRUE
$a === null // TRUE
is_null($b) // FALSE
$b == null  // TRUE
$b === null // FALSE
Run Code Online (Sandbox Code Playgroud)


kei*_*eld 13

php.net网站上有几个非常好的图表,显示了不同的值如何反应:

类型比较 - php.net


Umu*_*GÖZ 5

您可以检查is_null()null === $ var之间的比较

两者之间的比较好

  • 仅供参考,需要明确的是,这是一张比较性能的图表;我按照链接查看是否存在一些微妙的情况,它们在语义上有所不同,但这不是它的目的。 (2认同)

Aki*_*lar 5

===null由PHP的发明者Rasmus Lerdorf推荐.拉斯穆斯说,零测试比测试更快isset.他的建议是充分理由认真看待差异.如果您在一个Web页面请求中有一个小循环通过相同的代码数千次,则差别很大.

  • 当你说有人说某事,链接或[引证需要](http://xkcd.com/285). (6认同)