Php 检查常量是否为空

Php 检查常量是否为空,php,Php,为什么这是不可能的 if(!empty( _MY_CONST)){ ... 但这是: $my_const = _MY_CONST; if(!empty($my_const)){ ... 我只是想通过引用常量本身使它更简洁。请参见:empty()是一种语言构造,而不是函数 empty()。换句话说,以下操作将不起作用:empty(trim($name)) 所以您必须使用一个变量-empty()是您首先真正想要的吗?例如,当常量的值为“0”时,它将返回true 也许您需要使用defin

为什么这是不可能的

if(!empty( _MY_CONST)){
  ...
但这是:

$my_const = _MY_CONST;
if(!empty($my_const)){
  ...

我只是想通过引用常量本身使它更简洁。

请参见:
empty()
是一种语言构造,而不是函数

empty()。换句话说,以下操作将不起作用:
empty(trim($name))

所以您必须使用一个变量-
empty()
是您首先真正想要的吗?例如,当常量的值为“0”时,它将返回true


也许您需要使用
defined()
来测试常量是否存在?

只是让您知道您可以这样做

if(!empty(MY_CONST))

因为。

如果出于某种原因,您仍然没有使用PHP5.5,那么您可以接受这一点

if (defined('MY_CONST') && MY_CONST) {
    echo 'OK';
}
斯特伦呢

if(strlen(MY_CONST) == 0) 
混合常量(字符串$name)

返回由$name指示的常量值,如果未定义该常量,则返回NULL


如果常量定义且需要检查是否为空,例如,您可以在配置文件中使用它,您可以使用
!我的常数

define('MY_CONST', '');
if (!MY_CONST) {
    echo 'MY_CONST is empty';
}

空不是期望一个变量吗?(在第一次通话中,它收到了一个恒定的信号。)谢谢佩卡。所以我必须保持常量分配给变量,对吗?我很确定常量的意义在于知道值是可预测的-也就是说,它是常量-那么为什么你甚至需要-测试空值?我非常好奇@jim yup-如果
empty()
真的是你想要的?例如,当常量的值为“0”时,它将返回true。也许你想用
defined()
代替?+1测试常量的存在性,引用手册,“empty()是(boolean)var的对立面”,因此如果(!\u MY_CONST)
我给常量分配了一个字符串,然后用它向用户显示消息,你就会得到预期的结果。我想测试常量是否为空,然后不显示任何消息。你会怎么处理?
if (!empty(constant('MY_CONST')) {
    ...
}
define('MY_CONST', '');
if (!MY_CONST) {
    echo 'MY_CONST is empty';
}