PHP"EMPTY"常量名称

Ano*_* Wd -1 php

如果常量的名称是EMPTY,你可以告诉我为什么这段代码会抛出一个解析错误,但是如果我将它改为EMPTY2或SUBSTR它确实有效.

    define('EMPTY', '');

    if (empty(EMPTY)) {
       echo 'hello world';
    }
Run Code Online (Sandbox Code Playgroud)

mbj*_*mbj 5

因为,如此Quora答案中所述,PHP函数名称不区分大小写,因此EMPTY与内置函数发生冲突empty().

PHP手册在关于用户定义函数的小节中的示例#3后面的小注释中提到了这一点:

注意:函数名称不区分大小写,尽管调用函数通常是在声明中出现的良好形式.