为什么
if (!empty(constant('MY_CONST')))
抛出这个错误
Fatal error: Can't use function return value in write context
我该如何解决?
请参阅此处的注释:
在 PHP 5.5 之前,empty() 只支持变量;其他任何事情都会导致解析错误。换句话说,以下内容将不起作用:empty(trim($name))。相反,使用 trim($name) == false。
因此,您应该与null
as constant()
will return null
for undefined 常量进行比较,或者defined()
改为使用。
if(constant('MY_CONST')!==null) { ... }
if(!defined('MY_CONST')) { ... }
使用 PHP 5.5.0,您的代码将按原样运行。但是,为了向后兼容,您可以简单地将语句分成两部分。
$a = constant('MY_CONST');
if(!empty($a)) { //do something }
或者,您可以使用该defined()
功能。
empty() 只能用于检查变量。请参阅 php 手册。您可以使用已定义的。
if (defined('TEST')) {
echo TEST;
}
这是由于 PHP 中的实现细节:在 PHP 5.4.x 之前,只有变量可以使用empty()
.
你正在尝试做的可能会在 php 5.5 中工作。或者,使用:
if (defined('CONST') && CONST)