欢迎您访问我的笔记本站旨在于记录一些平时工作中遇到的一些问题和解决方法,方便查阅,部分内容来源于网络,如有侵权请联系我删除
  • 微信微信
您现在的位置是:首页 > PHP后端

PHP foreach 循环的一些理解-[原创]

日期:2020-03-30 11:57:58 作者:tanyi 来源:我的笔记 浏览:806 次
foreach循环使用频率非常高,使用也比较简单,但是其背后实际是做了很多复杂的操作,这里记录一些foreach比较有趣的结果
$a=[1,2,3];
foreach($a as &$v){

}

foreach($a as $v){

}
echo json_encode($a);

以上代码是一个百度的面试题,其输出结果为:

[1,2,2]

为什么会是这样一个结果呢。

首先循环相当于数组当前的 键 和 值 赋值给 $k(虽然没写,但是原理不变) 和 $v,第一次循环使用了引用&$v,在第一次foreach结束时$v实际是&$a[2],紧接着在第二次循环的时候,当触发$v=$a[0]之前由于$v引用并未结束,相当于$v=&$a[2]=$a[0];,即新数组键2的值等于数组键0的值,当前循环的数组结果为[1,2,1];依次类推:$a[2]=$a[0]->$a[2]=$a[1]->$a[2]=$a[2];

end:仅记录

原创文章转载时请注明原始出处,作者等相关信息

提交评论
评论列表