Ответ 1
что вы имеете в виду: Передача по ссылке
его очень простое, как
function changearray(&$arr){
$arr['x'] = 'y';
}
вы можете называть это следующим образом:
changearray($_SESSION);
Я хотел бы иметь функцию, которая принимает массив в качестве входных данных и изменяет некоторые значения массива (в моем случае массив равен $_SESSION, но я думаю, что он действительно не подходит).
Как я могу это сделать?
ADDED
Это звучит тривиально. Но это не так. Я просто хочу установить определенные значения в массив. Например, я хочу, чтобы моя функция меняла $_SESSION ['x'] и $_SESSION ['y']. Насколько я знаю, если я передаю массив в качестве аргумента, любые изменения аргумента не изменят исходный массив. Например:
function change_array($x) {
$x[0] = 100;
}
$x = array(1,2,3);
change_array($x);
Он не изменит значение $x.
ADDED 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;
}