在PHP当中有几个特殊的数组被叫做超全局变量。它们之所以被称为“超全局变量”是因为不管它们在代码的什么地方,都能够访问到。这些变量在PHP 4.1之前是没有的,所以推荐你用新版本的PHP一遍能够使用超全局变量。超全局变量同PHP种其他的数组一样使用,也就是说也有遍历等方法。
下面是九个超全局变量的说明:
函数名 | 功能 |
---|---|
$GLOBALS |
包含代码中的所有全局变量,也包含其他超全局变量。通常不推荐使用,除非由于某种原因或你不知道变量保存在什么位置。$GLOBALS 从PHP 3中就存在,功能一直保持不变。 |
$_GET |
包含所有HTTP GET请求传递的变量,也就是URL传递的那些。 |
$_POST |
包含所有HTTP POST请求传递的变量。 |
$_FILES |
包含POST上传文件传递的变量。 |
$_COOKIE |
包含所有cookies传递的变量。 |
$_REQUEST |
包含所有HTTP GET/POST/cookie所传递的变量。相当于上述三者的结合,危险程度仅次于$GLOBALS 。由于其包含来自不信任源(如访客)的变量,除非有好的理由,否则尽量不要使用。 |
$_SESSION |
包含所有储存在用户session当中的变量。 |
$_SERVER |
包含你所使用web服务器或与你代码执行直接相关的变量。 |
$_ENV |
包含所有系统为你的代码配置的环境变量。 |
有两种超全局变量不鼓励用户使用,分别是$GLOBALS
和$_REQUEST
。这两个数组都是其他数组的组合,并且混入了不受信任的用户数据。当你使用$_COOKIE['somevar']
的时候,你知道这个变量来自于用户的计算机而不是通过编辑URL地址得来的。而当你使用$_REQUEST['somevar']
,你就无法保证这一点了。