首页 > PHP > $GLOBALS为全局作用域中全部可用变量的引用

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

来源:原创 作者:thomas 分类:PHP 阅读:502 日期:2014-08-15

$GLOBALS为全局作用域中全部可用变量的引用。可用变量的名字为数组$GLOBALS的键。

示例:

<?php

error_reporting(E_ALL);

ini_set('display_errors', true);

//require 'var.php';

$fire = "abc";

var_dump(array_keys($GLOBALS));

结果:

array(9) {

[0]=>

string(7) "GLOBALS"

[1]=>

string(4) "argv"

[2]=>

string(4) "argc"

[3]=>

string(5) "_POST"

[4]=>

string(4) "_GET"

[5]=>

string(7) "_COOKIE"

[6]=>

string(6) "_FILES"

[7]=>

string(7) "_SERVER"

[8]=>

string(4) "fire"

}

说明:1、$GLOBALS中包含了一个键名仍为GLOBALS的数组,其为一个递归引用,array_keys($GLOBALS['GLOBALS'])的键名数组和以上的输出结果相同。

2、在全局作用域中定义的变量会自动变成$GLOBALS的数组项,如fire。在包含文件的全局作用域中定义的变量和此方式相同。

3、由于$GLOBALS为全局变量的引用,故执行unset操作时,超全局变量也会被unset掉。如$GLOBALS['argv'] = null; unset($GLOBALS['argv']); 全局作用域中的$argv将不存在了。

PHP中的超全局变量

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

这些超全局变量意味着在一个脚本的全部作用域中都可用,如在函数或方法中无须使用global $var;就可以访问他们。但在全局作用域中定义的普通变量,需要在函数或方法中使用global $var;的方式访问。另外,可使用$GLOBALS['var']的方式在函数或方法中访问全局作用域中定义的变量。

PHP脚本的执行环境不同,如在CLI下执行,并非所有的超全局变量都可用,但$GLOBALS总是可用的。

PHP中的全局变量

在PHP的函数或方法中通过global声明的变量,在全局作用域中直接可以访问。

 

热门文章 更多>

微信扫一扫,关注技术十日谈