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

更新於: 19-Sep-2020

774 次瀏覽

開啟你的 職業之旅

完成課程即可獲得認證

立即開始
廣告