PHP 超全局变量之$GLOBALS
程序员文章站
2022-06-22 12:08:31
$GLOBALS——引用全局作用域中可用的全部变量。 $GLOBALS一个包含了全部变量的全局组合数组。变量的名字就是数组的键。(即所有出现过的全局变量,都可通过$GLOBALS获取到) 在PHP中,定义在函数体外的全局变量,函数内部是不能直接获取的,所以需要global声明或者$GLOBALS[] ......
$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();
上一篇: ORM框架之Dapper简介和性能测试