2016-10-04 45 views
0

我有一个数组,可以调用$ X,所以了解PHP函数

$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。 :)

+1

看一看[此帖](http://stackoverflow.com/questions/2030906/are-阵列式 - PHP-通过按值-或按引用)。 –

+1

在这里你只是改变数组的值,但是你可以访问这个数组,但是在第二次你赋值给变量 这样你是否必须回显函数中的值或者返回值 –

+0

谢谢,@diiN_,it帮助。 :) – Enam

回答

2

您按照价值通过$x。您可以尝试通过引用传递它,而不是,这样做(加入&符号):

function changevalue (&$a, $k, $v) { 
        ^
    $a[$k] = $v; 
    return $a; // This is not necessary if you are passing by reference 
}