PHP可迭代

2023年11月20日10:58:34

定义和用法

从7.1版开始,PHP提供了一种称为iterable的新伪类型。实现了Traversable接口的任何对象(例如数组)。该类型使用foreach构造或生成器函数,一次生成一个值。

语法

函数可以将其参数作为类型进行迭代,以使该函数接受foreach语句中使用的一组值。如果该参数不支持foreach循环,则PHP解析器将抛出TypeError

示例

<?php
$arr1=array("PHP","Java","Python");
function myfunc (iterable $arr1){
   foreach ($arr1 as $lang){
      echo $lang . "\n";
   }
}
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中引入了可迭代的伪类型


  • 更新时间:2023年11月20日10:58:34 ,共 701 字。