PHP预定义变量总结
PHP中预定义变量都是超全局变量,常见的有,$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$REQUEST,$_SESSION,$_ENV,$_COOKIE,$php_errormsg,$HTTP_RAW_POST_DATA,$http_response_header,$argc,$argv。对于这些预定义变量,不建议在脚本中的任意地址直接使用或修改,最好以库的形式提供统一的规范化管理接口。
$GLOBALS
包含了全局变量的全局组合数组,其中变量的名字就是数组的键。这里不仅包括其它的预定义全局变量,同时也包含用户在脚本中自定义的全局变量。可以不使用global关键字在任何地方使用,不过不推荐在脚本中随意使用该变量。个人建议脚本中不要直接使用该变量。
$_SERVER
包含服务器和执行环境信息。该变量中的信息由Web服务器创建,由于不同服务器实现的标准或功能都不尽相同,很难保证每个服务器都提供全部或相同的信息。需要注意的信息见下表。
键名 | 作用 |
---|---|
SERVER_ADDR | 当前运行脚本所在的服务器的IP地址 |
SERVER_NAME | 当前运行脚本所在服务器的主机名 |
REQUEST_METHOD | 访问页面使用的请求方法,如,GET、HEAD、POST |
REMOTE_ADDR | 浏览当前页面的用户的IP地址 |
REQUEST_URI | URI指定的访问页面,相对于服务器跟目录 |
$_GET
$_GET保存的是通过URL参数传递给当前脚本的变量的数组。这部分由客户端传递,Web服务器初步处理,最后发送给PHP脚本。
$_POST
存储当HTTP POST请求的Content-Type是application/x-www-form-urlencoded或multipart/form-data时以数组形式存储的客户端信息。
$_FILES
通过POST方法上传文件时,该变量保存上传文件相应信息。
$_REQUEST
默认情况下包含了$_GET,$_POST,$_COOKIE的数组。
$_SESSION
当前脚本可用SESSION变量的数组
$_COOKIE
通过HTTP Cookies方式传递给当前脚本的变量的数组。
$HTTP_RAW_POST_DATA
POST方式提交的原始数据,目前一般用php://input代替。这主要是用于处理Content-Type不是application/x-www-form-urlencoded和multipart/form-data时的数据,例如为application/json。
$argc
命令行下运行时脚本接受到的参数数目。
$argv
命令行下运行时脚本接受的参数的数组。