Я хотел бы иметь функцию, которая принимает массив в качестве входных данных и изменяет некоторые значения массива (в моем случае массив равен $ _SESSION, но я думаю, что он действительно не подходит).
Как я могу это сделать?
ADDED
Это звучит тривиально. Но это не так. Я просто хочу установить определенные значения в массив. Например, я хочу, чтобы моя функция меняла $ _SESSION ['x'] и $ _SESSION ['y']. Насколько я знаю, если я передаю массив в качестве аргумента, любые изменения аргумента не изменят исходный массив. Например:
function change_array($x) { $x[0] = 100; } $x = array(1,2,3); change_array($x);
Он не изменит значение $ x.
ДОБАВЛЕНО 2
Почему мой вопрос проголосован? Я думаю, что этот вопрос не настолько тривиальный, несмотря на то, что он короткий. Я также думаю, что я дал всю необходимую информацию. Насколько я понял (благодаря одному ответу) речь идет о «передаче ссылки». Более того, тот факт, что я хочу изменить массив $ _SEESION, немного отличается.
что вы имеете в виду:
это очень просто
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';
Надеюсь, поможет.
function change_array() { global $x; /*this will tell the function to work on the array 'x' out of the function itself.*/ $x[0] = 100; }