首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这段php代码输出正确?

为什么这段php代码输出正确?
EN

Stack Overflow用户
提问于 2019-06-08 12:21:25
回答 1查看 34关注 0票数 0

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

我不太明白为什么这段PHP代码,以及为什么超级全局不等于15,而逻辑上10不是15,以及帮助或指针,这样我才能理解它?

代码语言:javascript
复制
$y = 10;
$x = 5;

$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];

我试着自己研究并接受它,因为y就是超级全局索引的名称

除了问题中的内容,没有其他可显示的内容

代码语言:javascript
复制
<?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。

EN

回答 1

Stack Overflow用户

发布于 2019-06-08 12:42:37

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

您还可以使用超全局$GLOBALS,它总是引用在其键中命名的全局变量。documentation将其描述为:

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

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

代码语言:javascript
复制
function myTest() { 
    global $x, $y;
    $y = $x + $y;
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56503390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档