我想有一个函数将数组作为输入并更改数组的某些值(在我的情况下,数组是$ _SESSION但我认为它并不真正匹配)。
我该怎么做?
ADDED
听起来微不足道。但事实并非如此。我只想为数组设置某些值。例如,我希望我的函数更改$ _SESSION ['x']和$ _SESSION ['y']。据我所知,如果我将数组作为参数传递,那么参数的任何更改都不会修改原始数组。例如:
function change_array($x) {
$x[0] = 100;
}
$x = array(1,2,3);
change_array($x);
它不会改变$ x。
已添加2
为什么我的问题被低估了?我认为这个问题虽然很短,但并不是那么微不足道。我也认为我提供了所有相关细节。据我所知(感谢一个答案),它是关于“传递参考”。此外,我想修改$ _SEESION数组的事实使它有点不同。
答案 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;
}