php foreach声明中的&是什么?

sta*_*wer -4 php arrays foreach

为了能够直接修改循环中的数组元素,在$ value之前加上&.在这种情况下,该值将通过http://php.net/manual/en/control-structures.foreach.php的引用分配.

 $arr = array(1, 2, 3, 4); 
 foreach ($arr as &$value) {
    echo $value; 
 }

 $arr = array(1, 2, 3, 4);
 foreach ($arr as $value) {
   echo $value;
 }
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,它输出1234.添加&$ value实际上做了什么?任何帮助表示赞赏.谢谢!

Den*_*rdy 6

它表示您通过引用传递$ value.如果在foreach循环中更改$ value,则会相应地修改数组.

没有它,它将通过值传递,并且您对$ value所做的任何修改都只适用于foreach循环.