ZetCode

PHP sizeof 函数

最后修改于 2025 年 3 月 13 日

PHP sizeof 函数返回数组中的元素个数。它是 count 的别名,并且功能相同。

基本定义

sizeof 函数计算数组或可计数对象中的所有元素。它以整数形式返回元素的数量。

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

sizeof 基本示例

这演示了如何计算简单索引数组中的元素。

basic_sizeof.php
<?php

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

echo "The array contains $count fruits"; 

这计算了 $fruits 数组中的元素个数。该函数返回 3,这与数组中的元素个数相匹配。

关联数组大小

sizeof 处理关联数组的方式与处理索引数组相同。

associative_array.php
<?php

$user = [
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'age' => 30
];

$fieldCount = sizeof($user);

echo "User has $fieldCount fields"; 

这计算关联数组中的键值对。无论数组是索引数组还是关联数组,该函数都返回 3。

多维数组计数

使用 COUNT_RECURSIVE 模式计算嵌套数组中的所有元素。

multidimensional_array.php
<?php

$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

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

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

Normal 模式只计算顶层数组(3)。Recursive 模式计算所有元素,包括嵌套的元素(9 个数字 + 3 个数组 = 12)。

空数组行为

对于空数组,sizeof 返回 0,这很有用。

empty_array.php
<?php

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

if ($count === 0) {
    echo "The array is empty"; 
}

这演示了 sizeof 通过返回 0 来正确识别空数组。这对于代码中的验证检查很有帮助。

计数对象

sizeof 可以计算实现 Countable 接口的对象。

countable_object.php
<?php

class Cart implements Countable {
    private $items = [];
    
    public function add($item) {
        $this->items[] = $item;
    }
    
    public function count(): int {
        return sizeof($this->items);
    }
}

$cart = new Cart();
$cart->add('Product 1');
$cart->add('Product 2');

echo "Cart has " . sizeof($cart) . " items"; 

这显示了 sizeof 与 Countable 对象一起工作。 Cart 类实现了接口并提供了自己的计数逻辑。

最佳实践

来源

PHP sizeof 文档

本教程介绍了 PHP sizeof 函数,并提供了实用示例,展示了它在各种情况下用于计算数组元素的使用方法。

作者

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

列出 所有 PHP 数组函数