愚蠢的问题——我很惊讶这个咬了我。为什么 PHP 中未定义的常量的计算结果为 true?
测试用例:
<?php
if(WHATEVER_THIS_ISNT_DEFINED)
echo 'Huh?';
?>
上面的示例打印“嗯?”
非常感谢你的帮助! :)
Try defined('WHATEVER_THIS_ISNT_DEFINED')
当 PHP 遇到未定义的常量时,会抛出异常E_NOTICE
,并使用您尝试用作字符串的常量名称。这就是为什么你的片段打印Huh!
,因为非空字符串(不是"0"
)将评估为true
.
从手册中:
如果使用未定义的常量,PHP
假设您指的是
常数本身,就像你调用
它作为一个字符串(CONSTANT 与
“持续的”)。级别错误
当此情况时,将发出 E_NOTICE
发生。
如果您将错误报告级别设置为报告E_NOTICE
s,这是开发过程中的一个很好的做法,您还会看到抛出的通知。
- PHP 常量语法 http://www.php.net/manual/en/language.constants.syntax.php
- 定义() http://www.php.net/manual/en/function.defined.php
- 转换为布尔值 http://php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
- 错误报告 http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting
- error_reporting() 函数 http://php.net/manual/en/function.error-reporting.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)