看一下这段代码,帮助我理解结果
$x = array('hello', 'beautiful', 'world');
$y = array('bye bye','world', 'harsh');
foreach ($x as $n => &$v) { }
$v = "DONT CHANGE!";
foreach ($y as $n => $v){ }
print_r($x);
die;
它打印:
Array
(
[0] => hello
[1] => beautiful
[2] => harsh
)
为什么它会改变 $x 的最后一个元素?它只是不遵循任何逻辑!
该循环执行后:
foreach ($x as $n => &$v) { }
$v
最终作为参考$x[2]
。无论你分配给什么$v
实际上被分配了$x[2]
。因此,在第二个循环的每次迭代中:
foreach ($y as $n => $v) { }
$v
(或者我应该说$x[2]
) 变为:
'bye bye'
'world'
'harsh'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)