Php 简明教程
PHP - Superglobals
PHP 解析器会用很多预定义变量及其全局命名空间填充当前脚本。预定义变量称为 “ PHP superglobals ”。
-
任何在任何函数、方法或类外部声明的用户自定义变量也是一个全局变量。然而,要访问它,你需要使用 global 关键字。
-
相比之下, superglobals 始终在 PHP 脚本的任何地方都可用,而无需以 global 关键字对其进行声明。
PHP 中的大多数超级全局变量都是关联数组,并且 Web 服务器会填充它们。因此,如果在命令行环境中运行脚本,则某些超级全局变量可能为空。
PHP 中的超级全局变量列表包括以下内容:
-
$GLOBALS
-
$_SERVER
-
$_GET
-
$_POST
-
$_FILES
-
$_COOKIE
-
$_SESSION
-
$_REQUEST
-
$_ENV
在本章中,我们将对 PHP 中的这些超级全局变量进行简要介绍。在后续章节中,我们将详细讨论这些超级全局变量。
$_GET
它是通过附加至 HTTP 请求的 URL 的查询字符串传给当前脚本的变量的关联数组。请注意,除了 GET 请求之外,还通过包含查询字符串的所有请求填充该数组。
查询字符串是所有变量及其值按“var=val”形式形成的列表,并以“&”符号连接起来。
查询字符串本身在问号“?”之后附加至 PHP 脚本名称。例如 http://localhost/hello.php?first_name=Amar&last_name=Sharma 。
$_POST
它是由 HTTP POST 方法通过查询字符串传给 URL 的键-值对的关联数组,在请求中使用 URLEncoded 或 multipart/form-data 内容类型。
$HTTP_POST_VARS 还包含与 $_POST 相同的信息,但不是超级全局变量,现已不赞成使用。向服务器发送具有 POST 请求的数据的最简单方法是将 HTML 表单的方法属性指定为 POST。
$_FILES
变量 $_FILES 是一个关联数组,其中包含通过 HTTP POST 方法上传的项。当一个 HTML 表单包含一个文件类型的输入元素,它的 enctype 属性设置为 multipart/form-data,并且方法属性设置为 HTTP POST 方法时,就会上传一个文件。
$_COOKIE
Cookie 是服务器存储在客户端计算机上的文本文件,并且它们被保留以用于跟踪目的。
超级全局变量 $_COOKIE 将通过 HTTP 请求传递给当前 PHP 脚本的变量以 cookie 的形式存储起来。
$_SESSION
HTTP 会话是用户与服务器建立连接的时间持续期,以及连接被终止的时间之间的时间段。在此间隔期间,某些数据是以会话变量的形式永久存在于页面中。
$_SESSION 超全局变量是会话变量的关联数组,当前脚本可以使用。