检查常量是否定义但是空?

时间:2013-04-09 17:37:23

标签: php constants

<?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';

那么如何在定义时检查我的常量是否带有值?

1 个答案:

答案 0 :(得分:5)

你可以这样做:

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

如果foo是空字符串,则if(foo)条件将评估为false。 empty()和转换为布尔值之间存在细微差别。有关其他情况,请参阅PHP手册。 Boolean conversionempty()