为了账号安全,请及时绑定邮箱和手机立即绑定

PHP中全局变量global和$GLOBALS的区别分析

PHP中全局变量global和$GLOBALS的区别分析

PHP
慕桂英546537 2019-03-14 14:10:58
PHP中全局变量global和$GLOBALS的区别分析
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

1:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
2:在 数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。GLOBALS数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。GLOBALS 之所以在全局范围内存在,是因为 是一个超全局变量。注意GLOBALS是一个超全局变量。注意GLOBALS 的写法,比如变量写法为a1,写法为GLOBALS['a1']。

查看完整回答
反对 回复 2019-03-20
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

global $a;
$a = 123;
function f(){
global $a; //函数内使用全部变量
$a = 312;
}
echo $a
$GLOBALS 在 PHP 3.0.0 及以后版本中适用。
由所有已定义全局变量组成的数组。变量名就是该数组的索引。
这是一个“superglobal”,或者可以描述为自动全局变量。

查看完整回答
反对 回复 2019-03-20
?
交互式爱情

TA贡献1712条经验 获得超3个赞

一、举例比较
例一:
复制代码 代码如下:
<?php
$var1 = 1;
function test(){
unset($GLOBALS['var1']);
}
test();
echo $var1;
?>
因为$var1被删除了,所以什么东西都没有打印。
例二:
复制代码 代码如下:
<?php
$var1 = 1;
function test(){
global $var1;
unset($var1);
}
test();
echo $var1;
?>
意外的打印了1。证明删除的只是别名引用,其本身的值没有受到任何的改变。
二、解释
global $var其实就是&$GLOBALS['var'],调用外部变量的一个别名而已。
上面代码中的$var1和$GLOBALS['var1']是指的同一变量,而不是两个不同的变量。
PHP的全局变量和C语言有一点点不同。在C语言中,全局变量在函数中主动生效,除非被局部变量笼罩。这可能引起一些问题,有些人可能漫不经心的转变一个全局变量。PHP中全局变量在函数中应用时必须用global申明为全局。
PHP的Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
三、结论
1.$GLOBALS['var']是外部的全局变量本身
2.global $var是外部$var的同名引用或者指针。 你看过后很简单吧以后不会可以向我一样经常到后盾人找找相关教材看看就会了,希望能帮到你,给个采纳吧谢谢

 

查看完整回答
反对 回复 2019-03-20
  • 3 回答
  • 0 关注
  • 604 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信