使用下面的代码,但是当我使用
时,它不起作用<?php
$GLOBALS['players'] = array();
function add($name) {
$array = $GLOBALS['players'][$name] = array();
array_push($array, "b");
}
add("a");
print_r($players);
?>
(输出:Array([a] =&gt; Array()))这里的代码
<?php
$GLOBALS['players'] = array();
function add($name) {
$array = $GLOBALS['players'][$name] = array();
array_push($GLOBALS['players'][$name], "b");
}
add("a");
print_r($players);
?>
(输出:数组([a] =&gt;数组([0] =&gt; b)))它工作正常。为什么$ array在引用同一个数组时不起作用。
答案 0 :(得分:0)
这非常简单,当您将值传递给$array
时,您将$GLOBAL
数组传递给新变量时,您并未引用该变量{ {1}}变量。
简而言之:$GLOBAL
和$array
是两个不同的变量。这样做就像:
$GLOBAL
要解决这个小问题,您必须将变量传递给$a = 10;
$b = $a;
$b++;
print_r($a); // Will not print 11, but 10, because you edited the var $b, that is different from $a.
,方法如下:
$array