我是靠谱客的博主 怕孤单自行车,最近开发中收集的这篇文章主要介绍php 迭代,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是迭代?
类继承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 迭代所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部