你知道为什么<?= count(false) ?>
退货1
吗?
问问题
9745 次
4 回答
26
于 2013-03-10T20:59:44.957 回答
10
因为false
也是一个值,如果 count() 没有得到数组而是一个有效的变量,它返回true
的是1
.
$result = count(null);
// $result == 0
$result = count(false);
// $result == 1
于 2013-03-10T20:59:33.630 回答
3
记住这一点的好方法:
- count(false) 与以下基本相同:
- 计数(“一个布尔值”),因此结果是“一个”布尔值。
于 2016-04-06T08:40:21.730 回答
2
在我看来,PHP 正在阻止人们使用它count()
来确定元素是数组还是对象。他们为此 ( is_array()
, is_object()
) 提供了专用函数,并且可能很容易天真地使用count()
和检查false
条件来确定数组或对象。相反,PHP 使非对象、非数组返回1
(这是真实的),因此不能以这种方式天真地使用此方法(因为0
对于空数组/对象是有效的、虚假的结果)。
这可能是在您描述的情况下选择函数返回的值的原因。
于 2013-12-28T20:19:38.027 回答