理解下PHP的循环

  看了一道题:

$array  = array(3,6,7,8);
foreach ($array as $key => $item)
{
    $array[$key + 1] = $item + 2;
}
print_r($array);

  输出是:3,5,8,9,10

  作为前端的我很不能理解。。。这是怎么循环出来的?用个更好理解的方式来一遍,js~

a.forEach( (num ,sub)=> {
    a[sub + 1] = num + 2;
})

  结果输出:3,5,7,9,11。看来php的循环机制是有区别的,于是进行了钻研,最终得出一条结论:

  循环的时用的是旧数组,最终输出新的数组。

  这时又有疑问了,foreach 是这样,那 for 呢?作为初学者,马上手敲了一遍:

$array  = array(3,6,7,8);
for($i = 0; $i < count($array); $i++) {
    $array[$i + 1] = $array[$i] + 2;
    echo $i;
}
print_r($array);

  结果得到了死循环,得出的结论是:立即更新数组数据。

  又想到了拿js验证下:

for(var i = 0; i < a.length - 1; i++ ) {
    a[i+1] = a[i] + 2;
}

  js 到4次后就停止了。php的循环机制跟js是不同的!待续。。。

posted @ 2018-12-13 18:51  名字不好起啊  阅读(168)  评论(0编辑  收藏  举报