首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查常量已定义但为空?

检查常量已定义但为空?
EN

Stack Overflow用户
提问于 2013-04-10 01:37:23
回答 1查看 6.6K关注 0票数 1
代码语言:javascript
复制
<?php
    define ('foo','');
if (defined('foo')){
    if (empty(foo)){
        echo "Notice: Foo Is Defined, But Does Not Carry A Value. Please Set It";
    }
}

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

代码语言:javascript
复制
define ('foo','');

在运行脚本时,我首先检查必要的常量是否定义正确并且确实包含一个值。

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

我知道当传递一个变量为空的时候,如果我把我定义的常量传递给一个变量,是不是有点失当了?

代码语言:javascript
复制
<?php
 define ('Foo','');
 $Foo = Foo;
 if (empty($Foo)){
  echo "Foo Is Empty"; 
}
?>

而我可能也会设置:

代码语言:javascript
复制
$Foo = 'Value';
$OtherConstant = 'Another';

那么,当常量被定义时,我该如何检查常量是否带有值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-10 01:54:20

您可以简单地这样做:

代码语言:javascript
复制
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()

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15908703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档