PHP 索引浅析 - 以 foreach 为例

  关于索引的概念倒是没什么难的,可看过好多介绍索引的文章 都引用了一个比较常见的例子,就是foreach循环。

  之前弄了好久一直都不太理解这个例子,后来才算真的弄懂了,在此记录一下

 

  例子如下:

<?php
    $arr = array(1,2,3,4,5);

    foreach ($arr as &$item) {;}
    
    print_r($arr); // 1,2,3,4,5

    foreach ($arr as $item) {;}

    print_r($arr); // 1,2,3,4,4
?>

 

解释如下:

  在执行完第一个foreach之后,$item 已经变为指向数组$arr中的最后一个元素的索引了。

  在执行第二个foreach的过程中,其实相当于依次将$arr中最后一个元素的值进行改变,具体过程如下:

    第一遍foreach执行完: $arr 数组的情况为: 1,2,3,4,1

    第二遍 ……      ……         1,2,3,4,2

    ……

    第四遍 ……      ……         1,2,3,4,4

    第五遍 ……      ……         自然还是 1,2,3,4,4

 

个人觉得这个解释 是目前为止看到的 关于这个例子最为详尽的解释了,希望能为其它人带来些帮助。

 

posted @ 2014-09-20 17:43  迟来的坚持  阅读(913)  评论(0)    收藏  举报