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);    

  

猜你喜欢

转载自www.cnblogs.com/moonthroughsky/p/12527888.html