PHP生成器简单实例


Posted in PHP onMay 13, 2015

一般你在迭代一组数据的时候,需要创建一个数据,假设数组很大,则会消耗很大性能,甚至造成内存不足。

//Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in E:\php\test\index.php on line 5

range(1, 100000000);

PHP5.5实现了生成器,每当产生一个数组元素则用yield关键词返回,并且执行函数暂停,当执行函数next方法时,则会从上一次被yield的位置开始继续执行,如下例子,只会产生中间变量$i

function xrange($start, $limit, $step = 1) {

    for ($i = $start; $i <= $limit; $i += $step) {

        yield $i;

    }

}

 

foreach (xrange(1, 9, 1) as $number) {

    echo "$number ";

}
PHP 相关文章推荐
URL Rewrite的设置方法
Jan 02 PHP
ajax+php打造进度条 readyState各状态
Mar 20 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php实现通过ftp上传文件
Jun 19 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
php实现比较两个字符串日期大小的方法
May 12 #PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 #PHP
PHP异常处理浅析
May 12 #PHP
php猴子选大王问题解决方法
May 12 #PHP
PHP嵌套输出缓冲代码实例
May 12 #PHP
php实现修改新闻时删除图片的方法
May 12 #PHP
php跨服务器访问方法小结
May 12 #PHP
You might like
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
jquery层次选择器的介绍
2019/01/18 jQuery
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
three.js 如何制作魔方
2020/07/31 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
python 随机数生成的代码的详细分析
2011/05/15 Python
python多重继承新算法C3介绍
2014/09/28 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
医学毕业生自我鉴定
2013/10/30 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
长江三峡导游词
2015/01/31 职场文书
财务负责人岗位职责
2015/02/03 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技