如何区分空变量和值为" 0"的变量?

时间:2016-05-20 10:53:44

标签: php

我对empty0感到困惑。我想知道$number是否为空。这意味着例如$number =但是这不应该包含0,因为如果$number = 0它对我来说不是空的。

$number = 0;

if(empty($number)){
echo "$number is empty.";
} else {
echo "$number is 0";
}

我的结果是$number is empty

3 个答案:

答案 0 :(得分:1)

您可以通过这种方式检查解决方法。

 $number = 0;
    if (empty($number) && $number!== '0') {
        echo "$number is empty.";
    } else {
    echo "$number is 0";
    }

这里我检查了它是否为空且非零值然后它是空的。希望它会对你有所帮助。

答案 1 :(得分:1)

http://php.net/empty

"" (an empty string)
0 (0 as an integer)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)

请注意,这与强制转换为布尔值false的列表完全相同。

空是简单的!isset($ var)|| !$变种。请改为isset

答案 2 :(得分:0)

首先,使用 echo "\$number is empty"; 要么 echo '$number is empty'l 因为当您写下#&$ 34; $ number"时,您将获得$ number的值,而不是字符串' $ number'。

关于你的问题。 在您的示例中,$ number的整数值为0。 它等于布尔值false。

在此处写下描述部分: php.net empty

正确的例子:

$number = 0
if($number === 0)
    echo '$number is 0';
elseif(empty($number))
    echo '$number is empty';
else 
    echo '$number isn't empty and not equal to 0';