IteratorAggregate :: getIterator的返回值的说明

时间:2018-04-14 06:42:03

标签: php iterator php-7 php-5.3 traversable

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呢?

我的意思是,这个问题是正确的,还是有些我不理解的东西?

1 个答案:

答案 0 :(得分:0)

扩展中的某些类只实现Traversable,而不是Iterator。

这些列表可以在这里找到: https://github.com/hakre/Iterator-Garden/blob/master/TRAVERSABLES.md

代码示例(Traversable yes,而不是Iterator): https://eval.in/988102