我在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之前。我没有看到之前声明的任何变量来获取变量地址。
请帮助我为什么这样宣布。任何帮助将不胜感激。
答案 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通过引用传递”,你需要解释这一切的所有内容都将存在。一些有用的链接: