在foreach php中变量之前的&符号

时间:2014-01-28 17:47:04

标签: php foreach

我在foreach中的变量前面看过一个&符号。我知道&符号用于获取前面定义的变量地址。

我见过这样的代码:

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}

// $arr is now array(2, 4, 6, 8)
unset($value); // break the reference with the last element

?>

我只需要知道使用&amp;在$ value之前。我没有看到之前声明的任何变量来获取变量地址。

请帮助我为什么这样宣布。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

foreach-block中的&符号允许直接操作数组,因为它通过引用获取每个值。

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

在这种情况下,每个值乘以2,然后立即丢弃。


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

由于这是通过引用传递的,因此数组中的每个值实际上都已更改(因此,$arr变为array(2,4,6,8)

答案 1 :(得分:0)

&符不是PHP独有的,实际上也用于其他语言(例如C ++)。它表示您通过引用传递变量。只是谷歌“PHP通过引用传递”,你需要解释这一切的所有内容都将存在。一些有用的链接: