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 相关文章推荐
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
Mar 28 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
Laravel向公共模板赋值方法总结
Jun 25 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
php查看网页源代码的方法
2015/03/13 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
html下载本地
2006/06/19 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
音乐学个人的自荐书范文
2013/11/26 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
电信营业员岗位职责
2015/04/14 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server