概述
什么是迭代?
类继承PHP的Iterator接口,批量操作。
//迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。
//相比传统的编程模式,迭代器模式可以隐藏遍历元素的所需操作。
迭代有什么作用?
处理大数据的时候迭代器很有作用
例子:
如果程序在执行的时候需要读取一个文件的内容,传统的方法是将文件file_get_content 或是 fgets,但是这种有一个缺陷,读出来的数据是直接载入到了php运行内存中,而php运行内存一般设置的是128M,当被读文件的大小很大时(如2G),就会产生报错,解决办法办法是增大php的运行内存,使之能包含住文件大小,但是这样产生的问题是对服务器的性能消耗很大,这时候迭代的作用就凸显出来了,因为迭代并不将读取出来的数据放置进内存,但可以通过foreach 循环来获得数据内容
<?php
function readYieldFile($fileName){
$handle=fopen($fileName,'r');
while(!feof($handle)){
yield fgets($handle);
}
fclose($handle);
}
function formatBytes($bytes)
{
if ($bytes < 1024) {
return $bytes . 'b';
} elseif ($bytes) {
return round($bytes / 1024, 2) . 'kb';
}
return round($bytes / 1048576, 2) . 'mb';
}
$lines = readYieldFile('./test.txt');
var_dump($lines);
foreach ($lines as $row) {
echo $row,'<br/>';
}
echo formatBytes(memory_get_peak_usage());
?>
学会使用迭代,方便用php处理大数据,当数据量很大,采用迭代可以减小服务器的性能开销,节约成本。
最后
以上就是怕孤单自行车为你收集整理的php 迭代的全部内容,希望文章能够帮你解决php 迭代所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复