它输出什么?
看一个小问题,问:
echo count("abc"); 输出什么?
刚开始反映的是3,结果输入代码一试才知道,原来输出是1。
看看手册的解释吧:
count -- 计算数组中的单元数目或对象中的属性个数(这个咱们都知道地..)
它的基本格式:
int count ( mixed var [, int mode] )返回 var 中的单元数目,通常是一个 array,任何其它类型都只有一个单元(注意这里)。 对于对象,如果安装了 SPL(Standard PHP Library (SPL) Functions,PHP标准函数库),可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。 如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数。对计算多维数组的所有单元尤其有用。mode 的默认值是 0。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 ?>
下面的代码可能不是很常用:count() 的递归例子(PHP >= 4.2.0)
<?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 ?>
这下,知道为什么会输出1了吧?:->