Php/docs/function.count

来自菜鸟教程
跳转至:导航、​搜索

count

(PHP 4, PHP 5, PHP 7)

count计算数组中的单元数目,或对象中的属性个数


说明

count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int

统计出数组里的所有元素的数量,或者对象里的东西。

对于对象,如果安装了 SPL,可以通过实现 Countable 接口对 count()挂钩(hook) 。该接口只有一个方法 Countable::count(),此方法为 count() 函数返回值。

关于 PHP 中如何实现和使用数组可以参考手册中数组章节中的详细描述。


参数

array_or_countable

数组或者 Countable 对象。

mode

如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数。对计算多维数组的所有单元尤其有用。

Caution

count() 能检测递归来避免无限循环,但每次出现时会产生 E_WARNING 错误 (如果 array 不止一次包含了自身)并返回大于预期的统计数字。


返回值

返回 array_or_countable 中的单元数目。 如果参数既不是数组,也不是实现 Countable 接口的对象,将返回 1。 有个例外:如果 array_or_countablenull 则结果是 0


范例

Example #1 count() 例子

<?php$a[0] = 1;$a[1] = 3;$a[2] = 5;var_dump(count($a));$b[0]  = 7;$b[5]  = 9;$b[10] = 11;var_dump(count($b));var_dump(count(null));var_dump(count(false));?>

以上例程会输出:


int(3)
int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 // PHP 7.2 起
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 // PHP 7.2 起
int(1)

Example #2 递归 count() 例子

<?php$food = array('fruits' => array('orange', 'banana', 'apple'),              'veggie' => array('carrot', 'collard', 'pea'));// recursive countecho count($food, COUNT_RECURSIVE); // output 8// normal countecho count($food); // output 2?>

更新日志

版本 说明
7.2.0 当无效的 countable 类型传递给 array_or_countable 参数时,count() 会产生警告。


参见

  • is_array() - 检测变量是否是数组
  • isset() - 检测变量是否已设置并且非 null
  • empty() - 检查一个变量是否为空
  • strlen() - 获取字符串长度
  • is_countable() - Verify that the contents of a variable is a countable value