如果常量的名称是EMPTY,你可以告诉我为什么这段代码会抛出一个解析错误,但是如果我将它改为EMPTY2或SUBSTR它确实有效.
define('EMPTY', '');
if (empty(EMPTY)) {
echo 'hello world';
}
Run Code Online (Sandbox Code Playgroud)
因为,如此Quora答案中所述,PHP函数名称不区分大小写,因此EMPTY与内置函数发生冲突empty().
PHP手册在关于用户定义函数的小节中的示例#3后面的小注释中提到了这一点:
注意:函数名称不区分大小写,尽管调用函数通常是在声明中出现的良好形式.