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 的值结束。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP