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 $_ENV为空的原因分析
Jun 01 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
php UBB 解析实现代码
Nov 27 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 PHP
Drupal简体中文语言包安装教程
Sep 27 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
PHP处理会话函数大总结
Aug 05 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
php实现字符串翻转的方法
2015/03/27 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
美国社交购物市场:MassGenie
2019/02/18 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
EJB实例的生命周期
2016/10/28 面试题
超市实习总结自我鉴定
2013/09/19 职场文书
机械专业应届生求职信
2013/09/21 职场文书
打架检讨书100字
2014/01/19 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
共青团员自我评价范文
2014/09/14 职场文书
工作证明书
2015/06/15 职场文书
vue组件vue-esign实现电子签名
2022/04/21 Vue.js
详解MySQL的内连接和外连接
2023/05/08 MySQL