对php5.5迭代生成器的使用详细的解释

本文对php5.5迭代发电机使用的一个例子。分享给您参考,如下:

php5.5介绍迭代生成器的概念。在PHP中已经存在迭代的概念,但是迭代生成器是PHP的一个新特性。这是类似于在Python3迭代生成器。让我们看看如何定义迭代的发电机php5.5。


< PHP
函数xrange(美元开始,美元,美元一步= 1){
对于($ i = $开始;$ i = $结束;$ I = $步骤){
收益1美元;
}
}
foreach(xrange(1, 1000000)达数){
,;
}




注意关键词:产量,这种产量的关键词,构造一个迭代器,它的功能是数据和先前的功能之间的差异。总的来说,回归是一种价值,而价值是一个迭代器。迭代器每循环一次生成该值。它称为迭代器生成器。迭代器生成Foreach价值和产生价值的每一次。

在php5.5,迭代器是通过定义一个类实现迭代器接口构建,并通过产量的迭代器的建设将提高性能和节省系统开销。

这种方法的优点是显而易见的。它允许在处理大数据集时将数据加载到内存中,甚至可以处理无限的数据流。

如上面的例子所示,迭代器功能是生成的数字,1000000的输出周期1,然后用以前的方法来产生1到1000000的数字在数组中,将是一个记忆,因为生成的所有结果之前,而不是在需要的时间生成即调用迭代器时数据,该函数的功能是不是真的跑,直到你的每一次迭代。

看看PHP官方网络的例子。


< PHP
函数xrange(美元美元美元开始,限制,步= 1){
对于($ i = $开始;$ i = $限制;$ I = $步骤){
收益1美元;
}
}
echo'single位奇数:';
*
*注意永远不会创建或返回数组,
*节省内存。
* /
foreach(xrange(1, 9, 2)达数){

}

>




其中数据是一个函数的迭代,和范围是相同的,如果该范围的使用功能,然后中间过程的内部功能的实现将存储在每一次迭代过程中,每一个中间变量的存储空间,然后第一个程序存储空间大,和内存分配,内存回收导致程序运行时间加长。但如果我们使用通过产量数据的功能,在它的中间变量将只使用一个记忆我,这将节省时间和空间。

那么为什么收益率会产生这种影响呢这是在Lua与产量相关,这是对有限范围的概念。Lua的语言,当程序运行到产量,采用关联记录的上下文,然后返回程序的操作权的主要功能。当主函数调用的简历,它将激活协会和产量记录阅读上下文。这形成了一个多对program.php 5.5语言层面的操作范围,产量也在这里一样。当程序运行到屈服时,当前程序将激发关联记录的上下文,然后主函数将继续操作。只是,PHP不使用相同的关键字的简历,但它会引起关联时使用它。例如,foreach可以在这个例子中,引起产量的迭代器,所以上面的例子可以理解。

更多有关PHP相关内容的读者可以看到特别站:PHP操作办公室文档技能摘要(包括word、Excel、Access、ppt)

希望本文能对PHP程序设计有所帮助。