## 预定义变量
PHP提供了大量的预定义变量。由于许多变量依赖于运行的服务器的版本和设置,及其他因素,所以并没有详细的说明文档。一些预定义变量在PHP以[命令行](http://php.net/manual/zh/features.commandline.php)形式运行时并不生效。有关这些变量的详细列表,请参阅[预定义变量](http://php.net/manual/zh/reserved.variables.php)一章。
> **Warning**
> PHP 4.2.0 以及后续版本中,PHP 指令 [register\_globals](http://php.net/manual/zh/ini.core.php#ini.register-globals) 的默认值为 *off*。这是 PHP 的一个主要变化。让 register\_globals 的值为 *off* 将影响到预定义变量集在全局范围内的有效性。例如,为了得到 DOCUMENT\_ROOT 的值,将必须使用 [$\_SERVER\['DOCUMENT\_ROOT'\]](http://php.net/manual/zh/reserved.variables.server.php) 代替 $DOCUMENT\_ROOT,又如,使用 [$\_GET\['id'\]](http://php.net/manual/zh/reserved.variables.get.php) 来代替 $id 从 URL *http://www.example.com/test.php?id=3* 中获取 id 值,亦或使用 [$\_ENV\['HOME'\]](http://php.net/manual/zh/reserved.variables.environment.php) 来代替 $HOME 获取环境变量 HOME 的值。
从PHP4.1.0开始,PHP提供了一套附加的预定数组 ,这些数组变量包含了来自web服务(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP中没有用户自定义超全局变量的机制。)超全局变量罗列于下文中;但是为了得到它们的内容和关于PHP预定义变量的进一步的讨论以及它们的 本质,请参阅[预定义变量](http://php.net/manual/zh/reserved.variables.php)。而且,你也将注意到旧的预定义数组($HTTP\_\*\_VARS)仍旧存在。自 PHP 5.0.0 起, 用 [register\_long\_arrays](http://php.net/manual/zh/ini.core.php#ini.register-long-arrays) 设置选项可禁用 长类型的 PHP [预定义变量](http://php.net/manual/zh/language.variables.predefined.php)数组。
> Note: 可变变量 超级全局变量不能被用作函数或类方法中的[可变变量](http://php.net/manual/zh/language.variables.variable.php)。
> Note:尽管超全局变量和HTTP_*_VARS同时存在,但是它们并不是同一个变量,所以改变其中一个的值并不会对另一个产生影响。
如果某些[variables\_order](http://php.net/manual/zh/ini.core.php#ini.variables-order)中的变量没有设定,它们的对应的PHP预定义数组也是空的。
- 序言
- 简介
- PHP是什么?
- PHP能做什么?
- 基本语法
- 类型
- boolean(布尔型)
- integer(整型)
- float(浮点型)
- string(字符串)
- array(数组)
- object(对象)
- callable(可调用)
- resource(资源)
- NULL(无类型)
- 伪类型
- 类型转换的判别
- 变量
- 基础
- 预定义变量
- 变量范围
- 可变变量
- 来自PHP之外的变量
- 常量
- 语法
- 魔术常量
- 表达式
- 运算符
- 运算符优先级
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 错误控制运算符
- 执行运算符
- 递增/递减运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 类型运算符
- 流程控制
- if
- else
- elseif/else if
- 流程控制的替代语法
- while
- do-whille
- for
- foreach
- break
- continue
- switch
- declare
- return
- require
- include
- require_once
- include_once
- goto
- 函数
- 用户自定义函数
- 函数的参数
- 返回值
- 可变函数
- 内部 (内置)函数
- 匿名函数
- 类与对象
- 简介
- 基本概念
- 属性
- 类的自动加载
- 构造函数
- 访问控制(可见性)