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

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

“解析错误:语法错误,第 3 行 C:\Users\Robert\Documents\web development\xampp\htdocs\xampp\web_development\index.php 中的意外 'EMPTY' (T_EMPTY)”

PHP 手册中没有任何地方明确声明“EMPTY”是一个标记,也没有告诉您这个陷阱。

4

3 回答 3

3

()您可以声明与 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它是一种语言结构

于 2013-01-14T02:58:47.103 回答
0

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

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

于 2013-01-14T02:45:14.167 回答
-1

函数名称不区分大小写。

$state = constant('EMPTY');
if (!empty($state)) {
于 2013-01-14T02:46:51.793 回答