PHP 迭代器
定義和用法
從 7.1 版本開始,PHP 提供了一種稱為可迭代的新偽型別。任何實現了可遍歷介面的物件(如陣列)都會被它接受。此型別使用 foreach 構造或一次生成一個值的生成器函式。
語法
一個函式可以將可迭代作為其引數的型別,以允許該函式接受在foreach語句中使用的一組值。如果該引數不支援 foreach 迴圈,PHP 解析器會丟擲TypeError
示例
<?php $arr1=array("PHP","Java","Python"); function myfunc (iterable $arr1){ foreach ($arr1 as $lang){ echo $lang . "
"; } } myfunc($arr1); ?>
產出
將產生以下結果 -
PHP Java Python
PHP 函式還可以返回可迭代的資料型別,如陣列。我們使用 **is_iterable()** 函式來驗證返回值的型別。
示例
<?php function newfunc ():iterable{ $arr2=[]; for ($i=1;$i<4;$i++){ $arr2[$i]=$i*2; } return $arr2; } $ret=newfunc(); var_dump (is_iterable($ret)); ?>
產出
將產生以下結果 -
bool(true)
以下是具有可迭代返回型別的生成器的示例
示例
<?php function gen(): iterable { yield 1; yield 2; yield 3; } gen(); ?>
PHP 版本
可迭代偽型別是在 PHP 7.1 中引入的
廣告