http://php.net/manual/en/iteratoraggregate.getiterator.php
返回值 - “实现Iterator或Traversable的对象的实例”
1)因此返回的内容始终是对象的实例,对吗? (我假设是的,但我想确定)。
通过此网址:http://php.net/manual/en/class.iteratoraggregate.php
IteratorAggregate扩展了Traversable。有人还告诉我Iterator也扩展了Traversable。 Traversable更像是一个内部事物(用C语言编写,我假设)并且它无法从PHP级别访问。
我熟悉的迭代器,它是当前的,关键的,下一个,倒带的,有效的“东西”。那么getIterator返回的内容可以实现这一点,如果不是这样,它将实现100%的时间来自Traversable的东西?并且Iterator不会来自Traversable呢?
我的意思是,这个问题是正确的,还是有些我不理解的东西?
答案 0 :(得分:0)
扩展中的某些类只实现Traversable,而不是Iterator。
这些列表可以在这里找到: https://github.com/hakre/Iterator-Garden/blob/master/TRAVERSABLES.md
代码示例(Traversable yes,而不是Iterator): https://eval.in/988102