Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php地址变量&$value与$value之间的差异_Php_Variables - Fatal编程技术网

php地址变量&$value与$value之间的差异

php地址变量&$value与$value之间的差异,php,variables,Php,Variables,在php中,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 ($a

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

?>

我现在是一个初学者问题,因为我是一个:

通过引用而不是通过值传递值。使用引用运算符“&”通过引用传递的变量可以在函数内部更改其值。
例如,请参见

另请阅读,谢谢您,先生。因此,如果我理解正确,如果我不通过引用传递它,我可以在foreach循环内部处理数组,但在其值之外将保持不变。因此,一旦循环完成,数组将保持不变,只要我不使用按引用传递。如果确实按引用传递,请确保按代码中的方式取消设置它,否则它仍将在循环外部被引用。