在foreach循环中,& $ Value和$ value之间的差异究竟是什么? 它是如何工作的? 在下面的示例中,print_r($ arr)将返回在第一个循环中修改的数组,并在第二个循环中未修改。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as $key => &$value) {
$value = $value * 2;
echo "$key => $value; ";
print_r ($arr);
echo '<br>';
}
unset ($value);
unset ($key);
echo '<br>Second loop without "&" on value <br>';
foreach ($arr as $key => $value) {
$value = $value * 2;
echo "$key => $value; " ;
print_r($arr);
echo '<br>';
}
?>
我现在这是一个初学者问题,因为我只有一个:)
答案 0 :(得分:1)
传递值by-reference而不是by-value。通过引用传递的变量(使用引用运算符'&amp;')可以在函数内部更改其值 例如,请参阅the examples here