我在代码中声明了一个变量 ($bonus) 并为其赋值。在此之后,$GLOBALS['bonus']
包含相同的值。
为什么会这样?
这就是 $GLOBALS 在 PHP http://php.net/manual/fr/reserved.variables.globals.php中的工作方式
这就是它应该表现的方式。
<?php
function test() {
$foo = "local variable";
echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
echo '$foo in current scope: ' . $foo . "\n";
}
$foo = "Example content";
test();
?>
$foo 在全局范围内:示例内容
$foo 在当前范围内:局部变量
如果有一个同名的全局变量,它会被覆盖,这是 PHP 中的正常行为。
这也是为什么你永远不应该使用全局变量的原因。