php - 使用 count() 计算实现 ArrayAccess 的对象的元素?

标签 php arrays interface spl

当一个类实现了ArrayAccess 接口(interface)时,它就可以作为数组发挥作用,完成 OffsetGet、OffsetSet 等。

我没有看到的一件事是当我们想要 count()sizeof() 时的实现,以我对 PHP 的有限了解,数量相同。

是否有类似的东西已经在标准 PHP 中实现了?

最佳答案

正确的方法是执行 Countable interface

Example #1 Countable::count() example

<?php
class myCounter implements Countable {
    public function count() {
        static $count = 0;
        return ++$count;
    }
}
$counter = new myCounter;
for($i=0; $i<10; ++$i) {
    echo "I have been count()ed " . count($counter) . " times\n";
}

换句话说,您自己实现 count() 应该返回的逻辑。

关于php - 使用 count() 计算实现 ArrayAccess 的对象的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289705/

相关文章:

php - 我可以在没有任何消息的情况下使用 throw 吗?

php - 如何在 PHP 中识别用户语言

php - 选择连接的行

php - 我如何对多个 mysql foreach 数组进行排序并需要它们在 php 中保持一致?

JavaScript:实现精确的动画最终值?

c++ - 如何使用 std::make_unique 函数和接口(interface)类?

php - 将文本和所见即所得表单提交到数据库和平面文件

C++ 是否足以在数组后清理 delete[]?

c - C语言中extern buffer[]和extern *buffer有什么区别?

java - 将类转换为其实现的接口(interface)