### 1.Iterator 作為返回類型和函數參數
`注意:iterator 的“i”是小寫的,頂級接口,Iterator是它的子孫接口 `
**該函數可以被foreach 遍歷**
~~~
<?php
// Iterable iterable
/**
* @param iterable $iterator iterable作為參數
*
*/
function index1(iterable $iterator){
var_dump($iterator);
}
$data=new ArrayObject([1,3,4]);
index1( $data);
// object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(3) { [0]=> int(1) [1]=> int(3) [2]=> int(4) } } 2
/**
* @param int $vsh
* @return iterator iterator作為返回值
*
*/
function gen(int $vsh):iterator {
for ($vsh;$vsh<10;$vsh++) {
yield $vsh;
}
}
foreach (gen(2) as $value){
echo $value."<br>";
}
//輸出
//3
//4
//5
//6
//7
//8
//9
~~~
### 子類或者子接口
[接口Traversable繼承Iterator接口](%E6%8E%A5%E5%8F%A3Traversable%E7%BB%A7%E6%89%BFIterator%E6%8E%A5%E5%8F%A3.md)
- 空白目錄
- 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