2016-05-20 41 views
2

我有点困惑empty0。我想知道$number是否为空。这意味着例如$number =但是这不应该包括0,因为如果$number = 0它对我来说不是空的。我的结果是$number is empty如何区分具有值“0”的变量的空变量?

+0

怎么样'$数= 0.00;'?它应该被视为'0'还是空的? – RomanPerekhrest

+0

@RomanPerekhrest:这也不是空的。 – Jarla

+0

“这也不是空的” - 我会将消息“$ number is 0”更改为“”$ number不为空“” - 如果'0'不是空的 – RomanPerekhrest

回答

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

1

在这里你的解决方法问题,你可以检查这种方式。

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

这里我检查了它是否为空和非零值,那么它是空的。希望它能帮助你。

0

Firsly,使用 echo "\$number is empty";echo '$number is empty'l 因为当你写“$号”,你会得到$数的值,而不是字符串“$号”。

关于你的问题。 在你的例子中你的$数字的整数值为0. 它等于boolean 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';