Yo,我正在学习和重新学习一些旧的PHP基础知识,我得到了超全局
我不太明白为什么这段PHP代码,以及为什么超级全局不等于15,而逻辑上10不是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。
发布于 2019-06-08 12:42:37
当您在函数外部引用变量时,它指的是全局变量。当您在函数中引用变量时,它通常指的是局部变量,除非函数包含使该变量成为全局变量的global声明。
您还可以使用超全局$GLOBALS,它总是引用在其键中命名的全局变量。documentation将其描述为:
是一个关联数组,包含对当前在脚本的全局范围内定义的所有变量的引用。变量名是数组的键。
因此,当您使用$GLOBALS['y']时,它与使用全局变量$y相同。您的函数等同于:
function myTest() {
global $x, $y;
$y = $x + $y;
} https://stackoverflow.com/questions/56503390
复制相似问题