是的,我正在学习和学习一些旧的PHP基础知识,后来又接触了superglobals
我不太了解为什么此PHP代码以及为什么在逻辑上10不为15时,超全局变量不加为15,以及帮助或指针,所以我能理解这一点吗?
$y = 10;
$x = 5;
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
我尝试自己研究并接受它,因为y只是超级全局索引的名称
除了问题以外什么都没有显示
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
唯一的错误是我的大脑
查看代码时,我看到$ GLOBAL ['10'] = $ GLOBAL ['5'] + $ GLOBALS ['10'];
我不明白15如何等于10。
答案 0 :(得分:0)
在函数外引用变量时,它引用的是全局变量。当您在函数内部引用变量时,通常会引用局部变量,除非该函数包含使该变量成为全局变量的global
声明。
您还可以使用超级全局$GLOBALS
,该超级全局始终引用其键中命名的全局变量。 documentation将其描述为:
一个关联数组,包含对当前在脚本的全局范围内定义的所有变量的引用。变量名是数组的键。
因此,当您使用$GLOBALS['y']
时,与使用全局变量$y
相同。您的功能等同于:
function myTest() {
global $x, $y;
$y = $x + $y;
}