比如 ArrayAccess、Countable 和 SeekableIterator 等接口,它们用于以数组形式操作对象。 RecursiveIteratorIterator OuterIterator IteratorIterator FilterIterator RecursiveFilterIterator ParentIterator SeekableIterator
SeekableIterator界面 8. Countable界面 第三部分 SPL Classes 9. SPL的内置类 10. DirectoryIterator类 11. SeekableIterator界面 SeekableIterator界面也是Iterator界面的延伸,除了Iterator的5个方法以外,还规定了seek()方法,参数是元素的位置,返回该元素。 php class PartyMemberIterator implements SeekableIterator { public function __construct(PartyMember
让我们看看它的类签名: ArrayIterator implements ArrayAccess , SeekableIterator , Countable , Serializable { } 就它们实现的接口而言 唯一的区别是,它不是ArrayObject实现的ArrayIterator接口,而是实现了SeekableIterator。 这是通过实现SeekableIterator来完成的。 除了将指针作为迭代器从上到下移动之外,它还允许随机跳转到某个位置。
class NewIterator implements Countable, RecursiveIterator, SeekableIterator { private $array = [] // int(6) // [2]=> // int(7) // } 关于代码不多解释了,注释里也有说明,最主要的就是要实现 Countable, RecursiveIterator, SeekableIterator
SPL 对 PHP 引擎进行了扩展,例如 ArrayAccess、Countable 和 SeekableIterator 等接口,它们用于以数组形式操作对象。
聚合式迭代器接口(创建外部迭代器的接口) OuterIterator 迭代器嵌套接口(将一个或多个迭代器包裹在另一个迭代器中) RecursiveIterator 递归迭代访问接口(提供递归访问功能) SeekableIterator
该类部分代码如下 class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator { /* 该类的部分代码如下 DirectoryIterator extends SplFileInfo implements SeekableIterator { /* 方法 */ public
可以直接应用count()方法获得对象的数目 OuterIterator 可以对迭代器迭代的过程进行自定义 Recursivelterator 可以迭代遍历拥有分层结构的数据 SeekableIterator
Support enabled SPL SPL support enabled Interfaces Countable, OuterIterator, RecursiveIterator, SeekableIterator