为什么这个 php 代码正确输出


哟,我

正在学习和重新学习一些旧的PHP基础知识,我到了超全局

我不太明白为什么这个 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。

当你引用函数外部的变量时,它指的是全局变量。当您引用函数内的变量时,它通常引用局部变量,除非该函数包含使该变量全局的global声明。

您也可以使用超全局$GLOBALS,它始终引用其键中命名的全局变量。文档将其描述为:

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

因此,当您使用$GLOBALS['y']时,它与使用全局变量 $y 相同。您的函数等效于:

function myTest() { 
    global $x, $y;
    $y = $x + $y;
} 

相关内容

  • 没有找到相关文章

最新更新