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 中引入的
广告