# 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