PHP中的$argv 与超全局变量

来源:互联网 发布:php中输入html 编辑:程序博客网 时间:2024/06/04 00:58

PHP 提供了大量的预定义变量。这些变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档。一些预定义变量在 PHP 以命令行CLI形式运行时并不生效。这些变量有些是关闭的,需要配置php.ini中register_globalsq键来开启(决定是否将EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。默认是关闭的 )

从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自 web 服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。 

这些超全局变量是: 

$GLOBALS    //一个包含了全部变量的全局组合数组。变量的名字就是数组的键。 $GLOBALS在PHP中总是可用的。 

$_SERVER    //$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的                         项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;

$_GET          //通过 URL 参数传递给当前脚本的变量的数组。 

$_POST        //通过 HTTP POST 方法传递给当前脚本的变量的数组。 

$_FILES        //通过 HTTP POST 方式上传到当前脚本的项目的数组。 

$_COOKIE    //通过 HTTP Cookies 方式传递给当前脚本的变量的数组。 

$_SESSION    //当前脚本可用 SESSION 变量的数组。

$_REQUEST   //默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。 

$_ENV            //通过环境方式传递给当前脚本的变量的数组。这些变量被从 PHP 解析器的运行环境导入到 PHP 的全局命名空间。很多是由                         支持 PHP 运行的 Shell 提供的,并且不同的系统很可能运行着不同种类的 Shell,所以不可能有一份确定的列表。请查看你                           的 Shell 文档来获取定义的环境变量列表。 

$argv — 传递给脚本的参数数组,它被定义在$_SERVER全局数组中(当脚本以命令行方式运行时,argv 变量传递给程序 C 语言样式的命令行参数)。当通过 GET 方式调用时,该变量包含query string。  

说明

包含当运行于命令行(CLI)下时传递给当前脚本的参数的数组。 

Note: 第一个参数总是当前脚本的文件名,因此 $argv[0] 就是脚本文件名。 

Note: 这个变量仅在 register_argc_argv 打开时可用。 

总结:直接引用这个变量就知道那些参数被传递给脚本,或直接使用它。