6.4.1 PHP超全局数组(预定义变量)概述
超全局数组(预定义变量)
• 服务器变量: $_SERVER
• 环境变量: $_ENV
• HTTP GET变量: $_GET
• HHTP POST变量: $_POST
• request变量: $_REQUEST
• HTTP文件上传变量: $_FILES
• HTTP Cookies:$_COOKIE
• Session变量: $_SESSION
• Global变量: $_GLOBALS
服务器变量: $_SERVER
•$_SERVER是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。数组的实体由 web 服务器创建。不能保证所有的服务器都能产生所有的信息;服务器可能忽略了一些信息,或者产生了一些未在下面列出的新的信息。这是一个自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_SERVER;
–PHP_SELF:当前正在执行脚本的文件名
–DOCUMENT_ROOT:当前运行脚本所在的文档根目录
–REMOTE_ADDR:正在浏览当前页面用户的 IP 地址。
环境变量:$_ENV
•在解析器运行时,这些变量从环境变量转变为 PHP 全局变量名称空间(namespace)。它们中的许多都是由 PHP 所运行的系统决定。完整的列表是不可能的。请查看系统的文档以确定其特定的环境变量。
•这是一个自动全局变量。它在所有的脚本中都有效。在函数或方法中不需要使用 global $_ENV;
HTTP GET变量:$_GET
通过 HTTP GET 方法传递的变量组成的数组。是自动全局变量.
http://localhost/login.php?name=zhangsan&id=100
<?php
echo “参数name的值:”.$_GET[“name”]; //zhangsan
echo “参数id的值:”.$_GET[“id”]; //100
?>
HTTP POST变量:$_POST
•通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。
•与$_GET相似,只是方法不一样。
request变量:$_REQUEST
•此关联数组包含 $_GET,$_POST和 $_COOKIE中的全部内容。
HTTP文件上传变量:$_FILES
•通过 HTTP POST 方法传递的已上传文件项目组成的数组。是自动全局变量。
HTTP Cookies:$_COOKIE
通过 HTTP cookies 传递的变量组成的数组。是自动全局变量。
Session变量:$_SESSION
•包含当前脚本中 session 变量的数组。参阅 Session 函数文档以获得更多信息。
Global变量:$GLOBALS
•由所有已定义全局变量组成的数组。变量名就是该数组的索引。
例 1.php
<?php
/*
* 超全局数组(变量), 在PHP的脚本中, 已经声明完的变量, 你可以直接就去使用即可! 变量的名子已经规定好的了
*
*
* $_SERVER
* $_ENV
* $_GET
* $_POST
* $_REQUEST
* $_FILES
* $_COOKIE
* $_SESSION
* $GLOBALS
*
*
* 超 全局 数组
*
*
* 1. 数组(关联数组), 就和你自己声明的数组是一样的操作方式
* 2. 全局
*
*
*/
echo count($_SERVER);
foreach($_SERVER as $key => $value) {
echo "{$key} => {$value} <br>";
}
例2.php
<?php
/*
* 超全局数组(变量), 在PHP的脚本中, 已经声明完的变量, 你可以直接就去使用即可! 变量的名子已经规定好的了
*
*
* $_SERVER
* $_ENV
* $_GET
* $_POST
* $_REQUEST
* $_FILES
* $_COOKIE
* $_SESSION
* $GLOBALS
*
*
* 超 全局 数组
*
*
* 1. 数组(关联数组), 就和你自己声明的数组是一样的操作方式
* 2. 全局
*
*
*/
$_GET=array("妹子", "峰哥");
function demo() {
// global $arr;
echo $_GET[0]."和".$_GET[1];
$_GET['username']="admin";
}
demo();
print_r($_GET);
例3 test.php
<?php
/*
* 超全局数组(变量), 在PHP的脚本中, 已经声明完的变量, 你可以直接就去使用即可! 变量的名子已经规定好的了
*
*
* $_SERVER
* $_ENV
* $_GET
* $_POST
* $_REQUEST
* $_FILES
* $_COOKIE
* $_SESSION
* $GLOBALS
*
*
* 超 全局 数组
*
*
* 1. 数组(关联数组), 就和你自己声明的数组是一样的操作方式
* 2. 全局
* 3. 每个预定义的数组都有自独特的能力
*
*/
$_GET=array("妹子", "峰哥");
function demo() {
// global $arr;
echo $_GET[0]."和".$_GET[1];
$_GET['username']="admin";
}
demo();
print_r($_GET);