记一次高频的笔试题,PHP遍历引用

记一次高频的笔试题,PHP遍历引用。

最近又开启了找工作的旅程,脑壳疼脑壳疼,被面试官各种虐 T_T ,话不多说,请看题。
记一次高频的笔试题,PHP遍历引用
这道题笔试经常碰到,大部分换汤不换药,答案是多少呢?各位读友们不妨先思考一下,大佬请跳过,此题适合菜鸟们(一不小心暴露自己是菜鸟)。










不卖关子了,上答案。
记一次高频的笔试题,PHP遍历引用
意不意外,惊不惊喜,跟你想的答案一样吗?

这里做一下简单的解释,第一个foreach循环完成之后别名$v指向了数组的最后一个元素等价于:

$a[2] = &$v;

当$v的值发生变化时,$arr[2]也会跟着变化,因为它们指向的是同一个内存地址,所以第二个foreach遍历每一次赋值给$v就相当于赋值给$arr[2];

第一次循环后
$a = [1,2,1];

第二次循环后
$a = [1,2,2];

第三次循环后
$a = [1,2,2];

所以答案就是这样来的了,get到没有。