Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否定义了检查常量但为空?_Php_Constants - Fatal编程技术网

Php 是否定义了检查常量但为空?

Php 是否定义了检查常量但为空?,php,constants,Php,Constants,在运行脚本时,我首先检查必要的常量是否正确定义,是否带有值 问题是,如果定义了值,我可以得到它,但是我不能正确地检查它是否为空 我知道,对于empty,需要传递一个变量,如果我将定义的常量传递给一个变量,这不是有点违背了这一点吗 define ('foo',''); 那么,当常数被定义时,我如何检查它是否带有一个值呢 你可以简单地做到: $Foo = 'Value'; $OtherConstant = 'Another'; 如果foo是空字符串,If(foo)条件将计算为false。empt

在运行脚本时,我首先检查必要的常量是否正确定义,是否带有值

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

我知道,对于empty,需要传递一个变量,如果我将定义的常量传递给一个变量,这不是有点违背了这一点吗

define ('foo','');

那么,当常数被定义时,我如何检查它是否带有一个值呢

你可以简单地做到:

$Foo = 'Value';
$OtherConstant = 'Another';

如果foo是空字符串,
If(foo)
条件将计算为false。
empty()
和转换为布尔值之间有细微的区别。其他情况请参考PHP手册

你可以简单地做到:

$Foo = 'Value';
$OtherConstant = 'Another';

如果foo是空字符串,
If(foo)
条件将计算为false。
empty()
和转换为布尔值之间有细微的区别。其他情况请参考PHP手册

strlen(foo)!=0
可能吗?虽然这也会捕获布尔值
false
,但您可能不希望这样。转换为空字符串的值是空字符串本身、
null
和布尔值
false
。上面的检查将匹配那些并且只匹配那些。啊!我对您最近添加的一个问题发表了评论(“通过PHP验证Visa借记”),但您在我添加另一条评论时删除了该问题。请不要这样做-如果一个问题吸引了反对票,那就是在这里发布的风险。@halfer很抱歉这样做,在其他用户发布了一篇文章后考虑了这个问题,这非常合乎逻辑,我决定删除这个问题
strlen(foo)!=0
可能吗?虽然这也会捕获布尔值
false
,但您可能不希望这样。转换为空字符串的值是空字符串本身、
null
和布尔值
false
。上面的检查将匹配那些并且只匹配那些。啊!我对您最近添加的一个问题发表了评论(“通过PHP验证Visa借记”),但您在我添加另一条评论时删除了该问题。请不要这样做-如果一个问题吸引了反对票,那就是在这里发布的风险。@halfer很抱歉这样做,在其他用户发布了一篇文章后考虑了一下,这很合乎逻辑,我决定删除这个问题
$Foo = 'Value';
$OtherConstant = 'Another';
if (defined('foo')) {
    echo 'defined';
    if (foo) {
        echo 'not empty';
    }
    else {
        echo 'empty';
    }
}
else {
    echo 'not defined';
}