在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
?>
我只需要知道$ value之前的用法。 我没有看到之前声明的任何变量来获取变量地址。
请帮助我为什么宣布这样。 任何帮助,将不胜感激。
foreach块中的&符号允许直接操作数组,因为它通过引用获取每个值。
$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)
)
&符号不是PHP独有的,实际上用于其他语言(如C ++)。 它表明你正在通过引用传递一个变量。 只需谷歌“通过参考的PHP传递”,并且你需要向你解释这一切的东西都会在那里。 一些有用的链接: