<?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';
那么如何在定义时检查我的常量是否带有值?
答案 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 conversion,empty()