为什么常量不能被空检查?

Cob*_*ast 1 php constants is-empty

为什么

if (!empty(constant('MY_CONST')))
Run Code Online (Sandbox Code Playgroud)

抛出这个错误

Fatal error: Can't use function return value in write context
Run Code Online (Sandbox Code Playgroud)

我该如何解决呢?

Mic*_*rtl 5

请参阅此处的注释:

在PHP 5.5之前,empty()仅支持变量; 其他任何东西都会导致解析错误.换句话说,以下内容不起作用:empty(trim($ name)).相反,使用trim($ name)== false.

所以你应该比较反对,null因为constant()将返回null未定义的常量,或者使用defined().

if(constant('MY_CONST')!==null) { ... }
if(!defined('MY_CONST')) { ... }
Run Code Online (Sandbox Code Playgroud)