PHP生成器简单实例

所属分类: 网络编程 / PHP编程 阅读数: 1389
收藏 0 赞 0 分享

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

复制代码 代码如下:

//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.MVC的模板标签系统(四)

PHP.MVC的模板标签系统(四)
收藏 0 赞 0 分享

PHP.MVC的模板标签系统(五)

PHP.MVC的模板标签系统(五)
收藏 0 赞 0 分享

Windows下的PHP5.0安装配制详解

Windows下的PHP5.0安装配制详解
收藏 0 赞 0 分享

最令PHP初学者头痛的十四个问题

最令PHP初学者头痛的十四个问题
收藏 0 赞 0 分享

PHP中的串行化变量和序列化对象

PHP中的串行化变量和序列化对象
收藏 0 赞 0 分享

PHP 5.0对象模型深度探索之绑定

PHP 5.0对象模型深度探索之绑定
收藏 0 赞 0 分享

PHP5.0对象模型探索之抽象方法和抽象类

PHP5.0对象模型探索之抽象方法和抽象类
收藏 0 赞 0 分享

PHP在XP下IIS和Apache2服务器上的安装

PHP在XP下IIS和Apache2服务器上的安装
收藏 0 赞 0 分享

初学者入门:细述PHP4的核心Zend

初学者入门:细述PHP4的核心Zend
收藏 0 赞 0 分享

PHP环境搭建最新方法

PHP环境搭建最新方法
收藏 0 赞 0 分享
查看更多