检查常数已定义,但为空


Check constant is defined but empty?

<?php
    define ('foo','');
if (defined('foo')){
    if (empty(foo)){
        echo "Notice: Foo Is Defined, But Does Not Carry A Value. Please Set It";
    }
}

如果有这个当前脚本,我正在运行一组检查定义的常量,用户需要在配置页面中定义。问题是,配置在没有任何定义的情况下发送:

define ('foo','');

,当运行脚本时,我首先检查必要的常量是否正确定义并且是否携带值。

问题是,我可以得到如果值被定义,但我不能正确地检查它是否为空。

我知道与空期望一个变量传递,如果我传递我定义的常量到一个变量,这不是有点失败的点吗?

<?php
 define ('Foo','');
 $Foo = Foo;
 if (empty($Foo)){
  echo "Foo Is Empty"; 
}
?>

而我不妨设置:

$Foo = 'Value';
$OtherConstant = 'Another';

那么在定义常量时,如何检查常量是否携带值呢?

你可以这样做:

if (defined('foo')) {
    echo 'defined';
    if (foo) {
        echo 'not empty';
    }
    else {
        echo 'empty';
    }
}
else {
    echo 'not defined';
}

如果foo是空字符串,if(foo)条件将计算为false。empty()和转换为布尔值之间有细微的区别。其他情况请参考PHP手册。布尔转换,empty()