php adressing变量& $ value vs $ value之间的差异

时间:2017-03-15 18:35:59

标签: php variables

在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>';
}

?>

我现在这是一个初学者问题,因为我只有一个:)

1 个答案:

答案 0 :(得分:1)

传递值by-reference而不是by-value。通过引用传递的变量(使用引用运算符'&amp;')可以在函数内部更改其值 例如,请参阅the examples here