FATAL ERROR php - 意外')'

时间:2017-11-08 08:02:19

标签: 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";

}

2 个答案:

答案 0 :(得分:5)

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

echo empty(0);
//out: 1
echo emPTY(0);
//out: 1
echo EMPTY(0);
//out: 1

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

答案 1 :(得分:0)

使用defined因为empty检查变量并且您正在检查常量。 defined - 检查给定的命名常量是否存在。 如其所说[{3}}