SPL(Standard PHP Library)迭代器接口简介

(一)迭代器和迭代器接口是什么

  • 迭代器

迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。

迭代器,你可以简单理解为一个可以foreach的对象。

  • 迭代器接口

通过实现这个接口的类,就相当于一个迭代器。可以被用在foreach循环结构中。并且能够提供一些高级的数据访问模式。

(二)迭代器接口的作用

SPL迭代器接口的作用在于帮组实现高级的迭代算法,允许为类创建精巧的数据访问方法。这些接口形成了创建迭代器的基础。可以直接实现这些接口去创建所需的迭代器。SPL同时也扩展定义了更多的内置迭代器类。

(三)SPL提供的迭代器接口

SPL提供了6个关于迭代器的接口

  • Traversable:无法被单独实现的基本抽象接口,其他的迭代器接口都直接或间接继承自该接口
  • Iterator:直接继承自Traversable接口的两个基本迭代器接口之一
  • SeekableIterator:Iterator接口的扩展,实现该接口允许通过键值进行查找
  • IteratorAggregate:直接继承自Traversable接口的两个基本迭代器接口之一,允许将迭代器所需实现方法委托给一个实现Iterator接口的迭代器
  • OuterIterator:继承自Iterator接口,允许将多个迭代器包裹其中
  • RecurisveIterator:继承自Iterator接口,提供递归访问功能
点赞