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

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

4

1 回答 1

5

你可以简单地这样做:

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

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

于 2013-04-09T17:54:20.050 回答