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个人网站架设连环讲(四)
Oct 09 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
php FLEA中二叉树数组的遍历输出
Sep 26 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
php去除二维数组的重复项方法
Nov 03 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
May 27 PHP
详解Laravel服务容器的优势
May 29 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
php下实现折线图效果的代码
2007/04/28 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
js实现烟花特效
2020/03/02 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
师范生求职自荐信
2014/06/14 职场文书
2015年考研复习计划
2015/01/19 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL