这段代码给了我错误:
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";
}
答案 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}}