首页 > Web开发 > 详细

PHP 超全局变量之$GLOBALS

时间:2019-12-23 23:03:20      阅读:81      评论:0      收藏:0      [点我收藏+]

$GLOBALS——引用全局作用域中可用的全部变量。


$GLOBALS一个包含了全部变量的全局组合数组。变量的名字就是数组的键。(即所有出现过的全局变量,都可通过$GLOBALS获取到)

注释:
“Superglobal”也称为自动化的全局变量。这就表示其在脚本的所有作用域中都是可用的,不需要在函数或方法中用global $variable;来访问它。
与所有其他超全局变量不同,$GLOBALS在PHP中总是可用的。

 在PHP中,定义在函数体外的全局变量,函数内部是不能直接获取的,所以需要global声明或者$GLOBALS[]来获取。

$GLOBALS 和 global 的区别:

  • $GLOBALS[‘variable‘] 是外部的全局变量$variable本身。
  • global  $variable 是外部$variable的同名引用或者指针。也就是在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量。 

下面一个简单的例子说明:

$a = 1;
$b = 2;
function Test1(){
    echo $a; //输出 :Notice: Undefined variable: a
    global $a;
    echo $a; //输出: 1
    unset($a);
}
Test1();
echo $a; // 输出:1
function Test2(){
    echo $GLOBALS[‘a‘]; //输出: 1
    unset($GLOBALS[‘a‘]);
}
Test2();
echo $a;//输出:Notice: Undefined variable: a

$GLOBALS 和 global 的相同点:

  • 可以在函数内部使用函数外声明的变量;
  • 在函数体外声明全局变量没有意义,在函数内部也无法使用。

例子:

global $a;
$a = 1;
function Test3(){
    echo $a; //输出:Notice: Undefined variable: a
}
Test3();

$GLOBALS[‘b‘] = 2;
function Test4(){
    echo $b; //输出:Notice: Undefined variable: b
}
Test4();

 

PHP 超全局变量之$GLOBALS

原文:https://www.cnblogs.com/pawn-i/p/12088639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!