PHP中迭代變量的坑

<?php
    $a = array('a','b','c','d','e','f');
    foreach($a as &$v){

    }
    /** 
     * 在第一次foreach中$v是迭代變量
     * 循環進行了6次
     * 第一次 $v=&$a[0];
     * 第二次 $v=&$a[1];
     * ...
     * 第六次 $v=&$a[5];
     * 最終引用變量$v指向數組的第6個元素內存空間
    */
    // var_dump($a);
    foreach($a as $v){
        var_dump($a);  
    }
    /** 
     * 在第二次foreach中$v等同於第一個foreach中的$v
     * 循環進行了6次
     * 第一次 $v=$a[0];因此$a[0]===$a[5];
     * ['a','b','c','d','e','a']
     * 第二次 $v=$a[1];因此$a[1]===$a[5];
     * ['a','b','c','d','e','b']
     * 第三次 $v=$a[2]; 
     * ['a','b','c','d','e','c']
     * 第四次 $v=$a[3]; 
     * ['a','b','c','d','e','d']
     * 第五次 $v=$a[4]; e
     * ['a','b','c','d','e','e']
     * 第六次 $v=$a[5];因此$a[5]===$a[5]
     * ['a','b','c','d','e','e']
    */    
   var_dump($a);    
相關文章
相關標籤/搜索