如何在PHP中编写修改数组的函数?
我希望有一个函数,它将数组作为输入,并更改数组的一些值(在我的例子中,数组是$\u SESSION,但我认为它实际上并不重要) 我该怎么做如何在PHP中编写修改数组的函数?,php,arrays,function,arguments,Php,Arrays,Function,Arguments,我希望有一个函数,它将数组作为输入,并更改数组的一些值(在我的例子中,数组是$\u SESSION,但我认为它实际上并不重要) 我该怎么做 已添加 听起来很琐碎。但事实并非如此。我只想为数组设置某些值。例如,我希望我的函数更改$\u会话['x']和$\u会话['y']。据我所知,如果我将数组作为参数传递,那么参数的任何更改都不会修改原始数组。例如: function change_array($x) { $x[0] = 100; } $x = array(1,2,3); change_a
已添加 听起来很琐碎。但事实并非如此。我只想为数组设置某些值。例如,我希望我的函数更改$\u会话['x']和$\u会话['y']。据我所知,如果我将数组作为参数传递,那么参数的任何更改都不会修改原始数组。例如:
function change_array($x) {
$x[0] = 100;
}
$x = array(1,2,3);
change_array($x);
它不会改变$x
增加了2个 为什么我的问题被否决了?我认为这个问题并非微不足道,尽管它很短。我还认为我已经给出了所有相关的细节。据我所知(多亏了一个答案),这是关于“传递参考”。此外,我想修改$\u seision数组这一事实使它有点不同。您指的是它的调用: 这很简单,就像
function changearray(&$arr){
$arr['x'] = 'y';
}
你可以这样称呼它:
changearray($_SESSION);
编码如下:-
$_SESSION['index_1'] = 'value 1';
$_SESSION['index_2'] = 'value 2';
如果要将索引“index_2
”的值更改为值“value 2 changed
”,只需编写:-
$_SESSION['index_2'] = 'value 2 changed';
希望有帮助。请更具体一些。您计划在数组上执行哪些操作?为什么要将
$\u SESSION
作为参数传递:O?!?它已经是全球性的了!!!正如我在最初的帖子中提到的,我想要一个函数,因为生成一个新值所需的计算序列很大(所以,我想把所有的东西都放在一个函数中)。我想这正是我想要的。有些人说$\u会话是一个“特殊”数组(因为它是全局的)。这是否意味着我应该以不同的方式对待它(例如,我不应该通过引用来传递它。而且,我不需要将它作为一个论点来传递)?他们对它进行全局授权,你不需要通过它,但我想学习你如何在phpThanks中通过引用传递很多!很酷,你可以从我简短的原始问题中得到我所需要的。谢谢
function change_array() {
global $x; /*this will tell the function to work on the array 'x' out of the function itself.*/
$x[0] = 100;
}