PHP 7 中生成器的委託


生成器的概念對 PHP 7 來說並不新鮮,因為它也出現在早期版本中。藉助生成器,可以在不實現實現迭代器介面的類開銷的情況下輕鬆實現。藉助生成器,我們無需在記憶體中使用陣列即可編寫 foreach 程式碼。它還有助於消除“超出記憶體限制錯誤”。

藉助 PHP 7 中的生成器委託,我們可以自動委託給另一個生成器。它還允許實現遍歷介面的陣列和物件。

生成器委託示例 1

線上演示

<html>
<head>
<title> PHP 7 : Tutorialpoint </title>
</head>
<body>
<?php
   function generator(){
      yield "zero";
      yield "one";
      yield "two";
   }
   function generator1(){
      yield "three";
      yield "four";
      yield "five";
   }
   function generator2(){
      yield "six";
      yield "seven";
      yield "eight";
      yield from generator();
      yield "nine";
      yield from generator1();
      yield "ten";
   }
   foreach (generator() as $value){
      echo $value, PHP_EOL;
   }
   foreach(generator2() as $value){
      echo $value, PHP_EOL;
   }
?>
</body>
</html>

輸出

上述 PHP 程式生成器委託程式的輸出將如下所示 -

zero one two six seven eight zero one two nine three four five ten

說明

  • 我們可以在一個編輯器中編寫上述程式碼,並寫入如上例所示的必需的 HTML 程式碼,而 HTML 的正文部分會注入生成器返回表示式的實際 PHP 7 程式碼。
  • 其次,使用“generator”、“generator1”和“generator2”宣告三個函式。
  • 我們在生成器函式中定義 yield“zero”、“one”和“two”。
  • 在“generator1”函式中,已定義 yield“three”、“four”和“five”。
  • 在 'generator2' 函式中,我們已定義 yield“six”、“seven”並生成器在 generator2 中讀取生成器和生成器 1。
  • 最後,對“generator”和“generator2”函式進行迭代,直到回顯 yield 的值結束。

更新於: 2021 年 3 月 13 日

395 次瀏覽

開啟您的職業生涯

完成課程認證

開始學習
廣告
© . All rights reserved.