超全局变量$GLOBALS

PHP超全局变量有很多,如下的都属于超全局变量(Superglobal):

$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。

官方说明:

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

  • 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

  • 即出现过的全局变量,就可以通过$GLOBALS这个数组取得。

  • PHP生命周期中,定义在函数体外部的所谓全局变量,函数内部是不能直接获得的

$foo = "Example content";

test();

function test() {

    $foo = "local variable";

    echo '$foo in current scope: ' . $foo . "<br>";

    echo '$foo in global scope: ' . $GLOBALS["foo"] . "<br>";

}

如上的例子,要访问外部的$foo必须使用 $GLOBALS数组。对于通过include文件进来的外部全局变量也适用。

php中global也有这样的功能,它和$GLOBALS的区别在于:

  • global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量。

  • $GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致。

对于类中的成员变量,类中函数必须使用$this->的方式访问,不能用$GLOBALS方式:

global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。


你可能感兴趣的:(PHP,$GLOBALS,超全局变量)