PHP 可迭代对象
phpserver side programmingprogramming更新于 2025/8/19 10:07:17
定义和用法
从 7.1 版本开始,PHP 提供了一种名为 iterable 的新伪类型。任何实现 Traversable 接口的对象(例如数组)都可以被它接受。此类型使用 foreach 构造或每次生成一个值的生成器函数。
语法
函数可以将 iterable 作为其参数的类型,以便该函数接受 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 版本
Iterable 伪类型于 PHP 7.1 中引入

