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

发布于 2024-10-21 09:19:50 字数 209 浏览 4 评论 0原文

当一个类实现 ArrayAccess 接口时,它就可以作为数组使用,包括 OffsetGet、OffsetSet 等。

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

标准 PHP 中已经实现了类似的功能吗?

When a class implements the ArrayAccess interface, it becomes ready to function as an array, complete with OffsetGet, OffsetSet and so on.

One thing I didn't see was an implementation for when we want to count() or sizeof() it, which, in my limited knowledge of PHP, amounts to the same.

Is there anything like it already implemented in standard PHP?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清风挽心 2024-10-28 09:19:50

正确的方法是实现 Countable 接口

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( ) 应该返回你自己。

The correct way would be to implement the 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";
}

In other words, you implement the logic what count() should return yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文