# IteratorAggregate(聚合式迭代器)接口
PHP IteratorAggregate又叫聚合式迭代器,它提供了创建外部迭代器的接口
## 简介
创建外部迭代器的接口。
## 接口摘要
~~~
class IteratorAggregate extends Traversable {
/* 方法 */
abstract public getIterator(): Traversable
}
~~~
## 实列
~~~
<?php
/**
* 利用聚合式迭代器,并返回一个实现了Iterator接口的类的实例
*
* @author zeng
*/
class myData implements IteratorAggregate
{
public $one = "one";
public $two = "two";
public $three = "three";
public function __construct()
{
$this->last = "property";
}
public function getIterator()
{
return new ArrayIterator($this); //ArrayIterator迭代器会把对象或数组封装为一个可以通过foreach来操作的类,
}
}
$obj = new myData;
foreach ($obj as $key => $value) {
var_dump($key, $value);
echo '<br>';// Linux:echo "\n";
}
~~~
输出
*string(3) "one" string(3) "one"
string(3) "two" string(3) "two"
string(5) "three" string(5) "three"
string(4) "last" string(8) "property"*
- 空白目录
- iterable接口
- 接口Traversable继承Iterator接口
- 类 RarArchive 继承Traversable接口
- 类SimpleXMLElement继承Traversable接口
- 类SimpleXMLIterator 继承SimpleXMLElement类
- 类IntlRuleBasedBreakIterator实现Traversable接口
- 类IntlCodePointBreakIterator实现Traversable接口
- 类DocResult 实现BaseResult和Traversable
- 类Result 实现\BaseResult和Traversable
- 类RowResult实现\BaseResult 和Traversable
- 类SqlStatementResult 实现BaseResult 和Traversable
- 接口IteratorAggregate 继承Traversable
- 类DOMNodeList 实现IteratorAggregate, Countable
- 类DOMNamedNodeMap 实现IteratorAggregate, Countable