FATAL ERROR php - 意外')'

0 php

这段代码给了我错误:

FATAL ERROR语法错误,意外')',期待'('第10行 - 第10行是这一个:"if(!empty(EMPTY)){"

我不明白......你能帮忙解释一下吗?

define('CONSTANT', 1);

define('_CONSTANT', 0);

define('EMPTY','');

if  ( ! empty( EMPTY ) ) {

    if ( ! ( ( boolean ) _CONSTANT ) ) {

        print "One";

    }

} else if ( constant( 'CONSTANT' == 1 )) {

    print "TWO";

}
Run Code Online (Sandbox Code Playgroud)

Iva*_*ita 5

在PHP中,方法名称不区分大小写.例如,这些语句正在做同样的事情:

echo empty(0);
//out: 1
echo emPTY(0);
//out: 1
echo EMPTY(0);
//out: 1
Run Code Online (Sandbox Code Playgroud)

您正在尝试定义一个与内置PHP方法同名的常量empty.当你调用empty(EMPTY)(这与empty(empty)PHP认为你试图empty在(内部)EMPTY调用的结果上调用(外部),但是oops时,你的内部EMPTY根本不是方法调用(它错过了大括号).在构建AST期间PHP期望类似empty(EMPTY(...))(注意内部后的开放式大括号EMPTY),这就是为什么你会遇到语法错误expecting "("....