PHP:使用is_null()与!$var或isset($var)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP:使用is_null()与!$var或isset($var)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
虽然我相信答案是肯定的,但我已经在旧版代码中看到了以下内容,我怀疑自己.我要求社区进行健全检查.

遗产代码

if (is_null($result) || !$result) {

重构代码

if (!$result) {

注意:如果$result未设置,我知道这将抛出一个通知.

这段代码在逻辑上是等价的吗?

代码测试

我测试了所有的组合PHP false values没有收到不等于….

$false_values = array(false,0.0,'0','',null,array(),new stdClass());

foreach ($false_values as $VAR) {
    if (!$var != (is_null($var) || !$var)) {
        echo 'Not equal for: ';
        var_dump($var);
    }
}

产量

$PHP check.PHP
$
是的,两个片段都是等效的. is_null定义为:

文档还清楚地表明,当变量未定义时,is_null会抛出一个警告,对$result的简单布尔评估也是如此.如果$result未设置,is_null($result)为true,因此您会收到一条警告 – 与您一样的$result也是一样的.

由于NULL的布尔评估(不出意外)为false,我们可以简单地测试出所有有趣的值:

$result  is_null($result)  !$result   is_null($result) || !$result
(unset)   true(+warn)     true(+warn)          true (+warn)
null         true            true              true
false(-y)    false           true              true
true(-ish)   false           false             false

请注意,对于评估为false的所有值以及所有评估为true的值,is_null和!$result的结果是相同的.因此,没有进一步的区别(比如通过测试0,“”等)是必要的.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP:使用is_null()与!$var或isset($var)全部内容,希望文章能够帮你解决PHP:使用is_null()与!$var或isset($var)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。