Несмотря на то, что вы можете легко (и лениво) использовать ключевое слово global
, чтобы это сработало, это очень не рекомендуется ( поиск переполнения стека, чтобы выяснить, почему ).
Вместо этого ваша функция должна принимать массив в качестве аргумента и возвращать модифицированный массив в качестве результата:
$test = array("a","b");
function myTest(array $test) {
$test[0] = "c";
}
$test = myTest($test);
print_r($test);
будет отображать:
Array (
[0] => c
[1] => b
)
В качестве альтернативы, вы можете принять массив как ссылку и работать с ним напрямую (без необходимости возвращать и переназначать):
$test = array("a","b");
function myTest(array &$test) {
$test[0] = "c";
}
myTest($test);
print_r($test);
Вывод будет одинаковым в обоих примерах.