PHP超全局变量
程序员文章站
2024-01-21 22:37:04
...
1.超全局变量的由来
因为在PHP的运行当中,经常需要一些变量去存储运行环境的一些参数,以及设置,这些变量称为预定义变量。
而从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自 web 服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。
2.超全局数组
定义:其实超全局变量就是在PHP环境中的任何范围都有效的预定义变量。
这些超全局变量分别是:
- $GLOBALS :该变量的作用是把局部变量注册成全局变量。(被注册的变量名称就是该数组的键名),以下面代码为例,我们可以理解为$GLOBALS["foo"]是变量$foo的一个"全局引用"。
<?php
function test () {
$foo = "local variable" ;
echo '$foo in global scope: ' . $GLOBALS [ "foo" ] . "\n" ;
echo '$foo in current scope: ' . $foo . "\n" ;
}
$foo = "Example content" ;
test ();
//最终会输出
//$foo in global scope: Example content
//$foo in current scope: local variable
?>
- $_SERVER:$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
<?php //输出当前浏览器的一些信息 echo $_SERVER [ 'HTTP_USER_AGENT' ]; ?>
- $_GET:获取由HTTP GET方法提交的参数
- $_POST:获取由HTTP POST方法提交的参数
- $_FILES:获取由由HTTP POST方法提交上传的文件参数
- $_COOKIE:获取cookie数据
- $_SESSION:获取session数据
- $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
- $_ENV:存储着环境变量的数组
3.其他一些预定义变量
$argc — 传递给脚本的参数数目:
//script.php
<?php
var_dump ( $argc );
?>
//当使用这个php命令执行上面的脚本: php script.php arg1 arg2 arg3时 ,上面这个
//脚本就会输出4,(script.php也是一个参数)
$argv — 获取传递给脚本的参数数组(也就是获取脚本输入的参数值)