在 php 中,0 是否被视为空?

2022-08-30 06:31:58

代码将解释更多:

$var = 0;

if (!empty($var)){
echo "Its not empty";
} else {
echo "Its empty";
}

结果返回“其空”。我以为 empty() 会检查我是否已经设置了变量并且里面有值。为什么它返回“它的空”??


答案 1

http://php.net/empty

以下内容被视为空:

  • “”(空字符串)
  • 0(0 为整数)
  • 0.0(0 作为浮点数)
  • “0”(0 作为字符串)
  • array() (一个空数组)
  • var $var;(已声明的变量,但在类中没有值)

请注意,这与布尔值的强制值列表完全相同。 只是.请尝试设置falseempty!isset($var) || !$var


答案 2

我想知道为什么没有人建议非常方便的类型比较表。它回答了有关常见函数的每个问题并比较运算符。

片段:

Expression      | empty($x)
----------------+--------
$x = "";        | true    
$x = null       | true    
var $x;         | true    
$x is undefined | true    
$x = array();   | true    
$x = false;     | true    
$x = true;      | false   
$x = 1;         | false   
$x = 42;        | false   
$x = 0;         | true    
$x = -1;        | false   
$x = "1";       | false   
$x = "0";       | true    
$x = "-1";      | false   
$x = "php";     | false   
$x = "true";    | false   
$x = "false";   | false   

与其他备忘单一样,我总是在桌子上保留这张桌子的硬拷贝,以防我不确定


推荐