理解下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是不同的!待续。。。