Traversable Interface:无法被单独实现的基本抽象接口,其他的迭代器接口都直接或间接继承自该接口。
Traversable接口其实不是一个接口,更像是一个特性。因为只有用C语言编写的内部类才可以直接实现Traversable接口。任何需要实现Traversable接口的自定义类都通过实现从Traversable派生出来的的用户自定义接口才能做到。
简单点来说,就是如果你是写PHP代码的,那么Traversable跟你关系不大,因为你写的类无法直接实现Traversable接口(直接实现会报错)。
Traversable接口是给用C语言写PHP扩展的人准备的,只有C写的类才能直接实现Traversable接口。
所以对于PHPer来说,我们更应该关注的是SPL两个派生自Traversable接口的基础级别接口,Iterator接口和IteratorAggregate接口。这两个接口才是你写的类可以直接实现的。
Traversable接口直接实现会报错:
class MyTraversable implements Traversable{}