php中for和foreach的区别和联

北京最好痤疮医院 http://m.39.net/pf/a_9125685.html

在php中,for和foreach是常见的循环结构,但是两者直接有着本质的区别,今天,我们就来简单介绍连着直接的区别。

for和foreach的联系

for和foreach都是循环结构,一般for循环需要先知道数组长度再操作,而foreach不需要。如果一个数组是使用连续的数字最为数组单元的键,那么可以使用for循环结构。如果不确定数组的键或者数组的键有包含字符的,应当使用foreach循环结构。

for和foreach的区别

for每次循环都操作对应索引下的值,对于每个值的改变也都会反映到被遍历的对象中;

而foreach每次操作一个单元,都是将其索引和值分别取到变量中,或者只取出值到一个变量中,然后单独操作放有索引和值的变量,不会影响到被遍历的对象本身。如果要在遍历过程中修改对象中的值,需要在声明是在变量前加符号。

一般情况下:foreach效率比for高很多,因为for在循环的时候需要进行很多次条件判断,需要花费更多的时间循环。

另外从数组变量的数据结构来看,foreach直接通过结构体中next指针获取下一个值,而for循环需要根据key先进行一次hash才得到值。

只有在固定长度或长度不需要计算的时候for循环效率高于foreach。其他情况下foreach的效率高于for循环。

不过在foreach过程中,对应的数组内容是被锁定的,循环期间不能修改!

示例说明,如下图所示:

for和foreach1for和foreach1


转载请注明:http://www.aierlanlan.com/rzfs/4243.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了