gpt4 book ai didi

php - is_null($x) 与 PHP 中的 $x === null

转载 作者:IT老高 更新时间:2023-10-28 11:45:53 24 4
gpt4 key购买 nike

Possible Duplicate:
What's the difference between is_null($var) and ($var === null)?

PHP 有两个(我知道,如果算上 isset() 的话,还有三个)方法来确定一个值是否为空:is_null() >=== 空。我听说 === null 更快,但没有得到证实,但在代码审查中,有人强烈建议我使用 is_null() 代替,因为它是专门设计的用于空评估目的。他也开始谈论数学什么的。

无论如何,is_null() 显然更慢的事实也让我相信它比 === null 做得更多,并且可能是首选。有任何理由使用其中一个吗?总是首选吗? isset() 呢?

作为可能无法解决此问题的附录,isset()is_null() 怎么样?似乎所有 isset() 都会禁止通知,所以除非你真的 想要 通知 undefined variable ,否则使用 is_null() 的任何理由 代替?如果你知道这个变量是在那个时候初始化的呢?

最后,是否有任何数学理由更喜欢 is_null() 而不是 === null?有什么关于 null 不可比较的吗?

最佳答案

is_null=== null 之间的功能绝对没有区别。

唯一的区别是 is_null 是一个函数,因此

  1. 稍慢(函数调用开销)
  2. 可以用作回调,例如array_map('is_null', $array).

就我个人而言,我尽可能使用 null ===,因为它更符合 false ===true === 检查。

如果需要,可以查看代码:is_identical_function (===) 和 php_is_type (is_null) 对 IS_NULL 的情况做同样的事情。


相关的isset() 语言结构在进行null 检查之前检查变量是否实际存在。所以 isset($undefinedVar) 不会抛出通知。

还要注意 isset() 有时可能会返回 true,即使该值为 null - 当它用于一个重载的对象,即如果该对象定义了一个 offsetExists/__isset 方法,该方法返回 true 即使偏移量是 null(这实际上很常见,因为人们在 offsetExists/__isset 中使用 array_key_exists)。

关于php - is_null($x) 与 PHP 中的 $x === null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8228837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com