为什么count(false)在PHP中返回1?

时间:2014-11-02 18:29:41

标签: php

count(false) === 1之后count(null) === 0如何有意义?

  

count - 计算数组中的所有元素或对象中的某些元素。    - http://php.net/manual/en/function.count.php

由于布尔值是基元而不是数组或countables,因此更不合理。

1 个答案:

答案 0 :(得分:1)

count返回元素数量。 false是一个元素(布尔值),但null没什么,null不是值。

请注意,您可以通过将变量设置为null来销毁变量,例如数组中的项:

$a = array(1,2,3);
$a[1] = null;
var_dump(isset($a[1]));

您将获得false,因为$a[1]已不再定义。

如果你对false做同样的事情:

$a = array(1,2,3);
$a[1] = false;
var_dump(isset($a[1]));

您将获得true,因为$a[1]设置为布尔值false