我有一个数组,让我们调用$ x,所以
$x = array(
'a'=> 1,
'b'=> 2,
'c'=> 3
);
我想替换c的假设值,所以我可以通过
来实现$x[c] = 4;
它的作品,但如果我想用函数做,我可以写一个函数
function changevalue ($a, $k, $v) {
$a[$k] = $v;
return $a;
}
然后使用此函数更改值
changevalue($x, 'c', 4);
它不起作用,但如果我将它设置为等于$ x
$x = changevalue($x, 'c', 4);
它有效。我的问题是为什么我需要将函数设置为等于数组。我是PHP的新手,如果有人解释,它会非常有帮助。 Thanx提前。 :)
答案 0 :(得分:2)
您按值传递$x
。您可以尝试通过引用传递它,通过执行此操作(添加& 符号):
function changevalue (&$a, $k, $v) {
^
$a[$k] = $v;
return $a; // This is not necessary if you are passing by reference
}