var_export & 的 php综合使用

$arr的值是什么,为什么?
<?php
$arr=[1,2,3];
foreach ($arr as &$v){
    //nothing to do
}
foreach ($arr as $v){
    //nothing to do
}
var_export($arr);
?>

答案: array ( 0 => 1, 1 => 2, 2 => 2, )

解析:
//这个过程相当于
$arr=[1,2,3];
&$v=$arr[0];//$v成为$arr[0]的引用
&$v=$arr[1];//$v成为$arr[1]的引用
&$v=$arr[2];//$v成为$arr[2]的引用
//此处结束$arr=[1,2,3];
$v=$arr[0];//因为作用域被改变的原因,此处$v实际上是$arr[2]的引用,相当于$arr[2]=$arr[0];$arr=[1,2,1];
$v=$arr[1];//相当于$arr[2]=$arr[1];$arr=[1,2,2];
$v=$arr[2];//相当于$arr[2]=$arr[2];$arr=[1,2,2];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容