PHP函数——count()的用法及实例
count()函数是PHP中的一种数组与对象的计数方法,它可以返回一个数组或对象的元素个数。在实际工作中,count()函数常常被用于数组的遍历和计数、判断对象是否为空等场景,那么下面我们将详细介绍count()函数的使用方法及实例。
count()函数的使用方法
count()函数的语法如下:
count($array, $mode = COUNT_NORMAL);
其中$count表示要计数的数组或对象,而$mode参数表示计数模式,可选的计数模式有两种:COUNT_NORMAL和COUNT_RECURSIVE。
- COUNT_NORMAL:计数只会计算第一维的元素个数(不递归计算),默认值为0。
- COUNT_RECURSIVE:计数将递归遍历多维数组及对象的所有元素,返回所有元素数量的总和。
注意:在对象中使用count()时,对象必须实现Countable接口并重写count()方法。
count()函数的实例
下面我们将结合具体的实例来介绍count()函数的使用方法:
实例1:统计一维数组的元素个数
在PHP中,最常见的数组就是一维数组,我们可以利用count()函数来计算一维数组的元素个数,示例代码如下:
$array = array('apple','orange','banana','pear');
echo count($array); // 4
可以看出,count()函数返回了数组元素的个数为4。
实例2:统计多维数组的元素个数
除了一维数组,我们还可以利用count()函数来计算多维数组的元素个数,示例代码如下:
$array = array(
array('apple','orange'),
array('banana','pear'),
array('grape','watermelon')
);
echo count($array); // 3 外层数组元素个数
echo count($array,COUNT_RECURSIVE); // 8 元素总个数
可以看出,当计数模式为COUNT_NORMAL时,count()函数只计算了外层数组的元素个数3;当计数模式为COUNT_RECURSIVE时,count()函数递归计算了所有子元素,总共计算了8个元素。
实例3:判断对象是否为空
和数组一样,我们可以利用count()函数来统计对象的元素个数,并进而判断该对象是否为空。示例代码如下:
class MyObj implements Countable{
private $count = 0;
public function count(){
$this->count += 1;
return $this->count;
}
}
$obj = new MyObj();
echo count($obj); // 1
echo empty($obj); // false
可以看出,这里我们创建了一个MyObj类来实现Countable接口中的count()方法,每次调用count()方法都将元素个数加1,最终返回总元素个数。我们利用count()函数来判断该对象是否为空,由于MyObj对象不为空,其返回结果为1,empty()函数返回false。
总结
通过上面的介绍我们可以了解到,count()函数主要有两个参数:$array和$mode。默认情况下,$mode为0,即为COUNT_NORMAL模式,只会计算第一维元素的个数。若要计算多维数组的元素总个数,需要将$mode设置为COUNT_RECURSIVE。在对象中使用count()时,需实现Countable接口,并重写count()方法。在实际工作中,我们可以利用count()函数来完成数组遍历与计数、多维数组元素计数、判断对象是否为空等任务。
