PHP 7 中的生成器委托

phpserver side programmingprogramming

生成器的概念对于 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”声明三个函数。
  • 我们在生成器函数中定义了收益“zero”、“one”和“two”。
  • 在“generator1”中函数中,我们定义了yield“three”、“four”和“five”。
  • 在‘generator2&rs​​quo;函数中,我们定义了yield”six”、“seven”和“eight”,分别读取generator2中的generator和generator1。
  • 最后,我们迭代“generator”和“generator2”函数,直到回显yield的值。

相关文章