无法使用函数更新数组?

use*_*985 1 php arrays function

$LEVELS = array();

function addLevel() {
    $LEVELS[1] = "test";
}

var_dump($LEVELS);
Run Code Online (Sandbox Code Playgroud)

它打印

array(0) {
}
Run Code Online (Sandbox Code Playgroud)

这让我烦恼不已.有帮助吗?

Jer*_*her 6

$LEVELS = array();

function addLevel() {
    global $LEVELS;
    $LEVELS[1] = "test";
}


addLevel(); // CALL YOUR FUNCTION
var_dump($LEVELS);
Run Code Online (Sandbox Code Playgroud)

也就是说,这是一种更好的方法:

$LEVELS = array();

function addLevel(&$LEVELS) { // This is a pass by reference -- points to the same array
    $LEVELS[1] = "test";
}


addLevel($LEVELS); // CALL YOUR FUNCTION
var_dump($LEVELS);
Run Code Online (Sandbox Code Playgroud)

要么 ...

$LEVELS = array();

function addLevel($LEVELS) { // THis gets a copy of the array
    $LEVELS[1] = "test";
    return $LEVELS;          //and send it back
}


$LEVELS = addLevel($LEVELS); // CALL YOUR FUNCTION
var_dump($LEVELS);
Run Code Online (Sandbox Code Playgroud)