能否请您告诉我,如果常量的名称为EMPTY,为什么此代码会引发解析错误,但是如果我将其更改为EMPTY2或SUBSTR,它将起作用。
define('EMPTY', '');
if (empty(EMPTY)) {
echo 'hello world';
}
答案 0 :(得分:5)
因为在此Quora回答中所述,PHP function names are case-insensitive,所以EMPTY
与内置函数empty()
冲突。
PHP手册在有关用户定义函数的小节Example #3之后的一小段注释中提到了这一点:
注意:函数名称不区分大小写,尽管通常是调用函数的好形式,因为它们出现在声明中。