看到很多框架底层都在使用iterator或者spl中的一些其他迭代器,感觉foreach不就行么,为啥用什么迭代器,不知道用迭代器的好处是啥
2 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
说个使用场景,上家公司用的kohana框架,他的model是继承了迭代器,接手其他同事做的一个功能,导出excel,线上报bug,有时提醒timeout,有时提醒服务器内存用尽,看了他们的代码之后,首先是优化他们的sql,减少数据量,考虑后期数据还是会增加,使用orm获取sql的描述资源,再使用iterator,逐条写入excel(具体实现方式,看iterator方法),一次获取,永久使用,时间换空间的一个小例子
炎炎设计
TA贡献1808条经验 获得超4个赞
使用foreach与使用迭代器,并不冲突迭代器可以使用在:1、使用返回迭代器的包或库时(如PHP5中的SPL迭代器)2、无法在一次的调用获取容器的所有元素时3、要处理数量巨大的无素时(数据库中的表以GB计的数据)迭代器还可以用来构造一些数据结构。
添加回答
举报
0/150
提交
取消