foreach循环和迭代器模式是类似的吗?二者有什么区别?

madbooker 发布于 2014/04/20 14:17
阅读 1K+
收藏 0
像php ,C#这样的语言提供了foreach循环来对容器中的每个元素进行迭代处理,是否可以认为这和设计模式中的迭代器循环类似,如果不是的话,二者的主要区别,或者说主要应用场景是什么?
加载中
0
朱__朱
朱__朱

迭代器是一种更高级的工具。foreach是简单的循环语法。虽然功能上看起来相似。但迭代器是工具,这是二者性质上的不同,所以迭代器有更丰富的功能特性,还可以自定义具体的实现。特别是在内存占用上,迭代器是按需读取数据,foreach是一次性载入数据。PHP里面PDO,SimpleXML里面都有迭代器的具体实现,更完整的全部在SPL扩展部分。

0
狂飙的小蜗牛
狂飙的小蜗牛

对PHP来说foreach更多是面向过程,进行简单的数据遍历;

而迭代器是面向对象的可以继承类、封装数据。

0
景愿
景愿

PHP不懂,java里面:无法使用迭代器对一个集合层叠多次迭代,使用foreach能很好的解决这个问题,而且也没有传统的for循环索引迷惑和失误问题~

0
南湖船老大
南湖船老大


PHP5.3 以后,多了个SPL,对foreach语法进行了扩充,引入了迭代器的概念。

在之前,foreach就是个for的语法糖

0
madbooker
madbooker

谢谢各位热心解答

返回顶部
顶部