PHP。使用;全球$var";要获取全局变量,我们是获取全局变量的副本还是获取对该全局变量的引用?

PHP。使用;全球$var";要获取全局变量,我们是获取全局变量的副本还是获取对该全局变量的引用?,php,scope,global-variables,Php,Scope,Global Variables,global$uservs$user=$GLOBALS['user'] 通过使用“global$var”获取全局变量,我们是获取全局变量的副本还是获取对该全局变量的引用 global $user; $user是全局对象的副本还是对实际全局变量的引用 谢谢 与全局$var一起使用始终有一个引用全局变量的局部变量 以下代码: $var = 1; function test() { global $var; $var++; } test(); echo $var; 相当于: $var

global$user
vs
$user=$GLOBALS['user']

通过使用“global$var”获取全局变量,我们是获取全局变量的副本还是获取对该全局变量的引用

global $user;
$user是全局对象的副本还是对实际全局变量的引用


谢谢

全局$var一起使用始终有一个引用全局变量的局部变量

以下代码:

$var = 1;

function test() {
  global $var;

  $var++;
}

test();
echo $var;
相当于:

$var = 1;

function test() {
  $GLOBALS['var']++;
}

test();
echo $var;

global$var一起使用始终有一个引用全局变量的局部变量

以下代码:

$var = 1;

function test() {
  global $var;

  $var++;
}

test();
echo $var;
相当于:

$var = 1;

function test() {
  $GLOBALS['var']++;
}

test();
echo $var;
引述:

包含的关联数组引用当前在脚本全局范围内定义的所有变量。变量名是数组的键

一个简单的测试用例:

$foo = "foo";
echo $GLOBALS["foo"];         // foo
echo $GLOBALS["foo"] = "bar"; // bar
echo $foo;                    // bar
引述:

包含的关联数组引用当前在脚本全局范围内定义的所有变量。变量名是数组的键

一个简单的测试用例:

$foo = "foo";
echo $GLOBALS["foo"];         // foo
echo $GLOBALS["foo"] = "bar"; // bar
echo $foo;                    // bar

都不是。编译器将该变量名的用法解析为全局范围内的相应变量。

两者都不适用。编译器将该变量名的用法解析为全局范围内的相应变量。

通过使用
global$var
将名为“var”的全局变量导入函数的本地范围(通过创建引用完成)

这与超全局变量
$GLOBALS
不同。无论范围如何,这总是无处不在


然而,这与参考文献不同。如果您真的想了解变量以及变量引用的方式,我建议使用Derick Rethans的PDF:(PDF)。

通过使用
global$var
将名为“var”的全局变量导入函数的局部范围(通过创建引用完成)

这与超全局变量
$GLOBALS
不同。无论范围如何,这总是无处不在

然而,这与参考文献不同。如果您真的想了解变量以及变量引用的方式,我建议您使用Derick Rethans的PDF:(PDF)。

Global/Local Related:Global/Local Related: