作者:小岳不在家 | 来源:互联网 | 2023-10-10 13:40
请看这段代码:functionaddCounter(&$userInfoArray){$userInfoArray['counter']++;return$us
请看这段代码:
function addCounter(&$userInfoArray) {
$userInfoArray['counter']++;
return $userInfoArray['counter'];
}
$userInfoArray = array('id' => 'foo', 'name' => 'fooName', 'counter' => 10);
$nowCounter = addCounter($userInfoArray);
echo($userInfoArray['counter']);
这将显示11.
但!如果在function参数中删除“&”运算符,结果将为10.
这是怎么回事?
解决方法:
&运算符告诉PHP在将数组传递给函数时不要复制数组.而是将对数组的引用传递给函数,因此该函数修改原始数组而不是副本.
看看这个最小的例子:
function foo($a) { $a++; }
function bar(&$a) { $a++; }
$x = 1;
foo($x);
echo "$x\n";
bar($x);
echo "$x\n";
?>
这里的输出是:
1
2
– 对foo的调用没有修改$x.另一方面,对酒吧的呼吁也是如此.