yield生成器demo代码
2024-10-19 07:50:52
<?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);
最新文章
- linux添加环境变量(centos)
- WPF 数据绑定Binding
- 【BZOJ】2157: 旅游
- DSO、CUBE区别(覆盖、合计)
- 利用nodejs+phantomjs+casperjs采集淘宝商品的价格
- [转载] 使用异步 I/O 大大提高应用程序的性能
- 1.Mariadb(mysql)基本操作
- browserify.js 的模块加载
- [PHP]MemCached高级缓存
- C++:memset ,memcpy 和strcpy 的根本区别!
- 2013腾讯编程马拉松初赛第〇场(3月20日)湫湫系列故事——植树节 HDOJ 4503
- alv 显示 汇总数据
- 轻松学习之Linux教程一 ubuntu14.04+windows双系统安装
- app.config 配置多项 配置集合 自定义配置(4) 自动增加配置项到配置文件的两种方法
- Django中模板过滤器总结
- bzoj 2829 计算几何
- PS笔刷的使用
- Python从菜鸟到高手(5):数字
- sql左右连接的区别
- RAID磁盘阵列的原理与搭建