PHP超全局变量简介

  • A+
所属分类:PHP语法 未分类

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

这些超全局变量是:

  • $GLOBALS 
  • $_SERVER 
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

 

$GLOBALS

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

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

与所有其他超全局变量不同,$GLOBALS在PHP中总是可用的

$_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。这也就意味着大量的此类变量都会在» CGI 1.1 规范中说明,所以应该仔细研究一下。

下表列出了您能够在 $_SERVER 中访问的最重要的元素:

元素/代码 描述
PHP_SELF 返回当前执行脚本的文件名
GATEWAY_INTERFACE 返回服务器使用的 CGI 规范的版本
SERVER_ADDR 返回当前运行脚本所在的服务器的 IP 地址
SERVER_NAME 返回当前运行脚本所在的服务器的主机名
SERVER_SOFTWARE 返回服务器标识字符串(比如 Apache/2.2.24)
SERVER_PROTOCOL 返回请求页面时通信协议的名称和版本(例如“HTTP/1.0”)
REQUEST_METHOD 返回访问页面使用的请求方法(例如 POST)。
REQUEST_TIME 返回请求开始时的时间戳(例如 1577687494)。
QUERY_STRING 返回查询字符串,如果是通过查询字符串访问此页面。
HTTP_ACCEPT 返回来自当前请求的请求头。
HTTP_ACCEPT_CHARSET 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
HTTP_HOST 返回来自当前请求的 Host 头。
HTTP_REFERER 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
HTTPS 是否通过安全 HTTP 协议查询脚本。
REMOTE_ADDR 返回浏览当前页面的用户的 IP 地址。
REMOTE_HOST 返回浏览当前页面的用户的主机名。
REMOTE_PORT 返回用户机器上连接到 Web 服务器所使用的端口号。
SCRIPT_FILENAME 返回当前执行脚本的绝对路径。
SERVER_ADMIN 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
SERVER_PORT Web 服务器使用的端口。默认值为 “80”。
SERVER_SIGNATURE 返回服务器版本和虚拟主机名。
PATH_TRANSLATED 当前脚本所在文件系统(非文档根目录)的基本路径。
SCRIPT_NAME 返回当前脚本的路径。
SCRIPT_URI 返回当前页面的 URI。

$_GET

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

$_POST 

当HTTP POST请求的Content-Type是application/x-www-form-urlencoded 或multipart/form-data 时,会将变量以关联数组形式传入当前脚本。

$_FILES

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

$_COOKIE

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

$_SESSION

当前脚本可用 SESSION 变量的数组。更多关于如何使用的信息,参见 Session 函数 文档。

$_REQUEST

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

$_ENV 

通过环境方式传递给当前脚本的变量的数组

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

其他环境变量包含了 CGI 变量,而不管 PHP 是以服务器模块还是 CGI 处理器的方式运行。

weinxin
我的微信
这是我的微信扫一扫

发表评论

您必须登录才能发表评论!