这是从PHP手册:http://us.php.net/manual/en/language.constants.syntax.phpPHP中是否有配置选项来防止未定义的常量被解释为字符串?
如果你使用一个未定义的常量,PHP假定想要的是该常量本身的名字,就好像你称它作为一个字符串(常量与“恒” )。发生E_NOTICE级别的错误将发生。
我真的不喜欢这种行为。如果我没有定义一个需要的常量,我宁愿脚本失败,以致于我被迫定义它。如果尝试使用未定义的常量,有什么办法强制PHP崩溃脚本?
例如。这两个脚本都做同样的事情。
<?php
define('DEBUG',1);
if (DEBUG) echo('Yo!');
?>
和
<?php
if(DEBUG) echo('Yo!');
?>
我宁愿第二个脚本DIE并宣布,它试图用一个未定义的常量DEBUG。
使用未定义常量的错误代码似乎是8. – Tgr 2010-05-11 17:15:35
谢谢Tgr!我将PHP常量改为E_USER_NOTICE。 – powtac 2010-05-11 17:19:10
+1 - 比我的答案要好。在调试时只设置这个错误句柄可能是一个好主意,因为它取决于可能很慢的子字符串检查(并且可能会导致一些误报)。 – Geoff 2010-05-11 17:25:31