0
点赞
收藏
分享

微信扫一扫

PHP生成器-动态生成内容的数组


1.生成器:“动态生成内容的数组”,用到值的时候才去生产。

2.搭配使用:关键字 yield foreach

过程:

1.作为生成器的方法相当于定义了一个数组;

2.生成器中的 yield,每次出现相当于定义了一个数组中出现的值;

3.foreach 会遍历生成器中所有的 yield 定义的值(某个被定义的值(表达式),只有在被用到的时候,当前yield同上一个yield之间的其他表达式才会被执行,当前yield之后的表达式不会被执行);

4.foreach 正常结束的话(不是break),判断一下生成器中最后一个yield之后是否有其他表达式未执行完,是的话,执行之;

5.不同于线程,不是并行执行,只是在主业务逻辑和生成器之间来回切换执行,只节省了空间,时间没省下来。

<?php

function gen()

{

echo '生成器开始执行' . PHP_EOL;

for ($i = 0; $i < 5; $i++) {

echo '产生数据之前:' . $i . PHP_EOL;

yield $i;

echo '产生数据之后:' . $i . PHP_EOL;

}

echo '再来一个数据' . PHP_EOL;

yield 5;

echo '生成器执行结束' . PHP_EOL;

}

$gen_func = gen();

echo '生成器开始执行了吗?


举报

相关推荐

0 条评论