PHP EMPTY令牌

define('EMPTY', '');
if(!empty(EMPTY))
{
if(!(boolean) _CONSTANT)
{
    print "One";
}
}

上面的代码会产生以下错误消息:

“解析错误:语法错误,在C: Users Robert Documents web development xampp htdocs xampp web_development index.php中出现意外'EMPTY'(T_EMPTY)

在PHP手册中没有任何地方明确指出“EMPTY”是一个标记,它也没有告知你这个陷阱。


函数名称不区分大小写。

$state = constant('EMPTY');
if (!empty($state)) {

您可以声明具有与PHP使用的函数相同名称的常量()来确定令牌是函数还是常量声明:

<?php
function myfunc() {
 echo "inside myfunc()n";
}
define('str_replace', 'my string');
echo str_replace . "n";
echo str_replace("A", "B", "AAAA") . "n";
define('myfunc', 'this is myfunc constant');
echo myfunc . "n";
myfunc();

/*
Output:
my string
BBBB
this is myfunc constant
inside myfunc()
 */

这不适用于empty因为empty是一种语言结构。


这不是一个问题...只需为常量选择另一个名称。

如果您愿意,您可以提交文档错误报告。

链接地址: http://www.djcxy.com/p/59447.html

上一篇: PHP EMPTY token

下一篇: What are the arguments against the use of the "<?="?