foreach在循环中修改其值导致意外的行为

<?php

$a = array(1,2,3);

foreach($a as &$item){
   
}



/*
此时 $item指向第三个元素,
然后将第三个元素赋值为数组第一个元素的值1,
array (size=3)
  0 => int 1
  1 => int 2
  2 => int 1//    3变1
将第三个元素赋值为数组的第二个元素的值2,
array (size=3)
  0 => int 1
  1 => int 2
  2 => int 2//   1变2
将第三个元素赋值为数组的第三个元素的值2
array (size=3)
  0 => int 1
  1 => int 2
  2 => int 2// 2变2
*/
foreach($a as $item){
    var_dump($a);
    echo $item . '</br>';
}

 

posted @ 2018-03-30 15:58  rcj_飞翔  阅读(120)  评论(0)    收藏  举报