countable php,ThinkPHP容器之Countable巧用

本文详细介绍了PHP中的Countable接口,这个常被忽视的知识点在源码阅读中却十分常见。通过分析thinkphp/library/think/Container.php中的实现,揭示了Countable接口如何用于计算对象元素。实战部分展示了如何在Container容器类中使用Countable,以及count()方法在不同场景下的应用。理解这一接口有助于提升PHP编程的深度。
摘要由CSDN通过智能技术生成

本文将讲解一个冷门的知识点,如果不去看源码时根本不会了解的一个知识点,那就是countTable的使用。”

六、Container容器类剖析之Countable巧用

关于Countable这块内容一直没想好是否是文章的形式写出展现给大家,但是在后期阅读源码时大量的出现了Countable的应用。

为了大家能看懂每一个技术点,咔咔还是写了出来。

这个知识点只是为了给大家展示一下怎么用,在后文中会提到跟count的关联。

在文件thinkphp/library/think/Container.php中,就可以直接看到使用了Countable接口,并且实现了它!8ee6a390fac4b8c866a42e3ebbaad024.png在这里插入图片描述

来到Countable这接口中,我们只能看到一个方法就是count().

根据代码中Count elements of an object这行注释可以了解到,这个接口是计算对象的元素

在看源码的过程中我们需要对其注释先看一遍,即使不会英文那也有翻译软件呢!会给你提供更好的理解。

5b7360cb39ccee56fd165342262fc278.png根据PHP文档的说明在深入了解一下。

文档说明当你执行count()方法时就相当于在执行上边的abstract public Countable::count ( void ) : int抽象方法。

9676b7ea38e257cef460f767f5e49c2f.png实战案例

光说不干,事事落空;又说又干,马到成功。直接开干

新建文件kaka/container/countableTest.php,并且添加以下内容

f833571a598d0b28e6fb19c0e00bdfe7.png接着在文件application/index/controller/Container.php中学会使用Countable。

这里注意一下用法,是直接使用count();

a6f2dae2f0720ee4f7db0aafe074917d.png

1ae0f7419b0564d8c52cfdd3194ac669.png

Countable中的count()跟平时使用count()方法有什么区别

顺便看一下PHP源码中的解释

可以看到第一个参数可以是数组也可是是countable

咔咔的理解是Countable只是重写了SPL中的count方法,为了就是方便定制自己需要的统计规则而已。int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )

接下来就是针对框架里边的容器进行剖析,一步一步的追溯到根源。“

坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值