ZetCode

PHP count 函数

最后修改于 2025 年 3 月 13 日

PHP count 函数计算数组中的所有元素或对象中的属性。 它对于处理集合至关重要。

基本定义

count 函数返回数组中的元素数量。 当与 COUNT_NORMAL 一起使用时,它还可以计算对象的公共属性。

语法:count(Countable|array $value, int $mode = COUNT_NORMAL): int。 对于多维数组,mode 参数可以是 COUNT_RECURSIVE。

基本 count 示例

这展示了如何使用 count 函数计算简单数组中的元素。

basic_count.php
<?php

$fruits = ['apple', 'banana', 'orange', 'grape'];
$count = count($fruits);

echo "There are $count fruits in the basket."; 

这计算了 $fruits 数组中的元素。 函数返回 4,我们将其显示在格式化的字符串中。

计算多维数组

演示使用 COUNT_RECURSIVE 计算多维数组中的元素。

multidimensional_count.php
<?php

$matrix = [
    ['a', 'b', 'c'],
    ['d', 'e'],
    ['f', 'g', 'h', 'i']
];

$normalCount = count($matrix);
$recursiveCount = count($matrix, COUNT_RECURSIVE);

echo "Normal count: $normalCount\n"; 
echo "Recursive count: $recursiveCount"; 

COUNT_NORMAL 仅计算顶层元素 (3)。 COUNT_RECURSIVE 计算所有级别的所有元素 (总共 9 个)。 包括第二级计数。

计算对象属性

展示了 count 在与对象及其属性一起使用时的行为。

object_count.php
<?php

class User {
    public $name;
    public $email;
    private $password;
    
    public function __construct($name, $email) {
        $this->name = $name;
        $this->email = $email;
        $this->password = bin2hex(random_bytes(8));
    }
}

$user = new User('John Doe', 'john@example.com');
$count = count($user);

echo "Public properties: $count"; 

Count 仅查看公共属性(名称和电子邮件)。 像密码这样的私有属性不计算在内。 结果是 2 个公共属性。

空数组行为

演示了 count 如何处理空数组和不可计数的值。

empty_count.php
<?php

$emptyArray = [];
$count = count($emptyArray);

echo "Empty array count: $count\n"; 

$nullValue = null;
$count = count($nullValue);

echo "Null count: $count"; 

空数组返回 0。像 null 这样的不可计数的值也返回 0。对于标量,count 返回 1,除非该值为 null。

使用 SPL Countable 进行计数

展示了 count 如何与实现 Countable 接口的对象一起使用。

countable_interface.php
<?php

class BookCollection implements Countable {
    private $books = [];
    
    public function add($book) {
        $this->books[] = $book;
    }
    
    public function count(): int {
        return count($this->books);
    }
}

$library = new BookCollection();
$library->add('PHP Guide');
$library->add('JavaScript Basics');
$library->add('Python Cookbook');

echo "Books in collection: " . count($library); 

实现 Countable 的对象可以定义它们自己的计数逻辑。 在这里,count() 使用对象的 count() 方法。 结果反映了内部数组的大小。

最佳实践

来源

PHP Count 文档

本教程介绍了 PHP count 函数,并提供了实际示例,展示了它在计算数组元素和对象属性方面的用法。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。 自 2007 年以来,我一直在撰写编程文章。 迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出 所有 PHP 数组函数