(PHP 4, PHP 5, PHP 7)
count — 计算数组中的单元数目,或对象中的属性个数
统计出数组里的所有元素的数量,或者对象里的东西。
对于对象,如果安装了 SPL,可以通过实现 Countable 接口对 count()挂钩(hook) 。该接口只有一个方法 Countable::count(),此方法为 count() 函数返回值。
关于 PHP 中如何实现和使用数组可以参考手册中数组章节中的详细描述。
array_or_countable
数组或者 Countable 对象。
mode
如果可选的 mode
参数设为
COUNT_RECURSIVE
(或 1),count()
将递归地对数组计数。对计算多维数组的所有单元尤其有用。
count() 能检测递归来避免无限循环,但每次出现时会产生 E_WARNING
错误
(如果 array 不止一次包含了自身)并返回大于预期的统计数字。
返回 array_or_countable
中的单元数目。
如果 array_or_countable
不是数组类型或者没有实现
Countable 接口的对象,将返回
1。
有个例外:如果
array_or_countable
是 NULL
则结果是 0。
count() 对没有初始化的变量返回 0,但对于空的数组也会返回 0。 用 isset() 来测试变量是否已经初始化。
Example #1 count() 例子
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count($b);
// $result == 3
$result = count(null);
// $result == 0
$result = count(false);
// $result == 1
?>
Example #2 递归 count() 例子
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// recursive count
echo count($food, COUNT_RECURSIVE); // output 8
// normal count
echo count($food); // output 2
?>