Return 值的解释 IteratorAggregate::getIterator

Explanation of the Return Values of the IteratorAggregate::getIterator

http://php.net/manual/en/iteratoraggregate.getiterator.php

Return 值 - "An instance of an object implementing Iterator or Traversable"

1) 那么返回的总是一个对象的实例,对吗? (我假设是的,但我想确定一下)。

由此url:http://php.net/manual/en/class.iteratoraggregate.php

IteratorAggregate 扩展了 Traversable。有人还告诉我 Iterator 也扩展了 Traversable。 Traversable 更像是一个内部事物(我假设是用 C 编写的)并且无法从 PHP 级别访问它。

我熟悉的Iterator,就是current,key,next,rewind,valid"thing"。那么 getIterator returns 可以实现这个,如果不是这个,它将在 100% 的时间内实现源自 Traversable 的东西?那么 Iterator 不会源自 Traversable 吗?

我的意思是,这个措辞是否正确,还是有什么我不明白的地方?

扩展中的一些 类 只实现了 Traversable,没有实现 Iterator。

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

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