如何在PHP中编写一个修改数组的函数?

时间:2011-07-06 13:33:17

标签: php arrays function arguments

我想有一个函数将数组作为输入并更改数组的某些值(在我的情况下,数组是$ _SESSION但我认为它并不真正匹配)。

我该怎么做?


ADDED

听起来微不足道。但事实并非如此。我只想为数组设置某些值。例如,我希望我的函数更改$ _SESSION ['x']和$ _SESSION ['y']。据我所知,如果我将数组作为参数传递,那么参数的任何更改都不会修改原始数组。例如:

function change_array($x) {
   $x[0] = 100;
}
$x = array(1,2,3);
change_array($x);

它不会改变$ x。


已添加2

为什么我的问题被低估了?我认为这个问题虽然很短,但并不是那么微不足道。我也认为我提供了所有相关细节。据我所知(感谢一个答案),它是关于“传递参考”。此外,我想修改$ _SEESION数组的事实使它有点不同。

3 个答案:

答案 0 :(得分:21)

你的意思是:Passing by Reference

非常简单

function changearray(&$arr){
     $arr['x'] = 'y';
}
你可以这样称呼:

changearray($_SESSION);

答案 1 :(得分:0)

编码如下: -

$_SESSION['index_1'] = 'value 1';
$_SESSION['index_2'] = 'value 2';

如果您想将索引“index_2”的值更改为值“value 2 changed”,那么您只需写下: -

$_SESSION['index_2'] = 'value 2 changed'; 

希望它有所帮助。

答案 2 :(得分:-1)

function change_array() {

     global $x; /*this will tell the function to work on the array 'x' out of the function itself.*/
     $x[0] = 100;

}