<?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()