首页 > 其他 > 详细

yield生成器demo代码

时间:2020-09-27 10:25:10      阅读:35      评论:0      收藏:0      [点我收藏+]
<?php

function get_val1($n = 10000*100)
{
$arr = [];
for($i = 0; $i <= $n;$i++){
$arr[] = $i;
if(($i % 100000) == 0){
echo round(memory_get_usage() / 1024 / 1024 ,2) . " MB<br>";
}
}
return $arr;
}

function get_val2($n = 100)
{
for($i = 0; $i <= $n;$i++){
yield $i;
if(($i % 10) == 0){
echo round(memory_get_usage() / 1024 / 1024 ,2) . " MB<br>";
}
}
}
$a = get_val2();

foreach($a as $k => $v){
// echo "$v <br>";
}

//使用生成器来读取文件
function readTxt()
{
//1.打开文件
$file = fopen(‘./a.txt‘,‘r‘);

//2.读取文件
while (!feof($file)){
yield fgets($file , 1024);
}

//3.关闭文件
fclose($file);
}

$content = readTxt();

foreach($content as $v){
echo $v . ‘<br>‘;
}

function gen(){
$id = 2;
$id = yield $id;
echo $id;
}

$gen = gen();
$gen->send(1000);









yield生成器demo代码

原文:https://www.cnblogs.com/myJuly/p/13737707.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!