Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 05cd670d8a02b2b4a0ffb1756f2e8308 > files > 12026

php-manual-zh-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>预定义变量</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PHP 手册"
HREF="index.html"><LINK
REL="UP"
TITLE="变量"
HREF="language.variables.html"><LINK
REL="PREVIOUS"
TITLE="变量"
HREF="language.variables.html"><LINK
REL="NEXT"
TITLE="变量范围"
HREF="language.variables.scope.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PHP 手册</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="language.variables.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>章 12. 变量</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="language.variables.scope.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="language.variables.predefined"
>预定义变量</A
></H1
><P
>&#13;    PHP 提供了大量的预定义变量。由于许多变量依赖于运行的服务器的版本和设置,及其它因素,所以并没有详细的说明文档。一些预定义变量在
    PHP 以<A
HREF="features.commandline.html"
>命令行</A
>形式运行时并不生效。有关这些变量的详细列表,请参阅<A
HREF="reserved.variables.html"
>预定义变量</A
>一章。
   </P
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>警告</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;     PHP 4.2.0 以及后续版本中,PHP 指令 <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
> 的默认值为
     <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>off</I
></SPAN
>。这是 PHP 的一个主要变化。让 register_globals 的值为
     <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>off</I
></SPAN
> 将影响到预定义变量集在全局范围内的有效性。例如,为了得到
     <CODE
CLASS="varname"
>DOCUMENT_ROOT</CODE
> 的值,将必须使用
     <CODE
CLASS="varname"
>$_SERVER['DOCUMENT_ROOT']</CODE
> 代替
     <CODE
CLASS="varname"
>$DOCUMENT_ROOT</CODE
>,又如,使用
     <CODE
CLASS="varname"
>$_GET['id']</CODE
> 来代替 <CODE
CLASS="varname"
>$id</CODE
> 从 URL
     <TT
CLASS="literal"
>http://www.example.com/test.php?id=3</TT
> 中获取
     id 值,亦或使用 <CODE
CLASS="varname"
>$_ENV['HOME']</CODE
> 来代替
     <CODE
CLASS="varname"
>$HOME</CODE
> 获取环境变量 HOME 的值。
    </P
><P
>&#13;     更多相关信息,请阅读 <A
HREF="ini.core.html#ini.register-globals"
>register_globals</A
>
     的配置项条目,安全一章中的<A
HREF="security.globals.html"
>使用 Register Globals</A
>,以及 PHP
     <A
HREF="http://www.php.net/releases/4_1_0.php"
TARGET="_top"
>4.1.0</A
> 和
     <A
HREF="http://www.php.net/releases/4_2_0.php"
TARGET="_top"
>4.2.0</A
> 的发行通告。
    </P
><P
>&#13;     如果有可用的 PHP 预定义变量那最好用,如<A
HREF="language.variables.predefined.html#language.variables.superglobals"
>超全局变量</A
>。
    </P
></TD
></TR
></TABLE
></DIV
><P
>&#13;    从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自 web
    服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。(PHP
    中没有用户自定义超全局变量的机制。)超全局变量罗列于下文中;但是为了得到它们的内容和关于
    PHP 预定义变量的进一步的讨论以及它们的本质,请参阅<A
HREF="reserved.variables.html"
>预定义变量</A
>。而且,你也将注意到旧的预定义数组(<CODE
CLASS="varname"
>$HTTP_*_VARS</CODE
>)仍旧存在。自 PHP 5.0.0 起,长格式的 PHP
<A
HREF="language.variables.predefined.html"
>预定义变量</A
>可以通过设置
<A
HREF="ini.core.html#ini.register-long-arrays"
>register_long_arrays</A
> 来屏蔽。
   </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>可变变量: </B
>
     超级全局变量不能被用作<A
HREF="language.variables.variable.html"
>可变变量</A
>。
    </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
     尽管超全局变量和 HTTP_*_VARS
     同时存在。但是他们并不是同一个变量,所以改变一个的值并不会对另一个产生影响。
    </P
></BLOCKQUOTE
></DIV
><P
>&#13;    如果某些 <A
HREF="ini.core.html#ini.variables-order"
>variables_order</A
>
    中的变量没有设定,它们的对应的 PHP 预定义数组也是空的。
   </P
><P
></P
><DIV
CLASS="variablelist"
><P
><B
>PHP 超全局变量</B
></P
><DL
><DT
><A
HREF="reserved.variables.html#reserved.variables.globals"
>$GLOBALS</A
></DT
><DD
><P
>&#13;       包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。从
       PHP 3 开始存在 <CODE
CLASS="varname"
>$GLOBALS</CODE
> 数组。
      </P
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.server"
>$_SERVER</A
></DT
><DD
><P
>&#13;       变量由 web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 <CODE
CLASS="varname"
>$HTTP_SERVER_VARS</CODE
>
       数组(依然有效,但反对使用)。
      </P
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.get"
>$_GET</A
></DT
><DD
><P
>&#13;       经由 URL 请求提交至脚本的变量。类似于旧数组 <CODE
CLASS="varname"
>$HTTP_GET_VARS</CODE
>
       数组(依然有效,但反对使用)。
      </P
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.post"
>$_POST</A
></DT
><DD
><P
>&#13;       经由 HTTP POST 方法提交至脚本的变量。类似于旧数组 <CODE
CLASS="varname"
>$HTTP_POST_VARS</CODE
>
       数组(依然有效,但反对使用)。
      </P
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.cookies"
>$_COOKIE</A
></DT
><DD
><P
>&#13;       经由 HTTP Cookies 方法提交至脚本的变量。类似于旧数组 <CODE
CLASS="varname"
>$HTTP_COOKIE_VARS</CODE
>
       数组(依然有效,但反对使用)。
      </P
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.files"
>$_FILES</A
></DT
><DD
><P
>&#13;       经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 <CODE
CLASS="varname"
>$HTTP_POST_FILES</CODE
>
       数组(依然有效,但反对使用)。详细信息请参阅 <A
HREF="features.file-upload.html#features.file-upload.post-method"
>POST 方法上传</A
>。
      </P
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.environment"
>$_ENV</A
></DT
><DD
><P
>&#13;       执行环境提交至脚本的变量。类似于旧数组 <CODE
CLASS="varname"
>$HTTP_ENV_VARS</CODE
>
       数组(依然有效,但反对使用)。
      </P
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.request"
>$_REQUEST</A
></DT
><DD
><P
>&#13;       经由 GET,POST 和 COOKIE
       机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照
       <TT
CLASS="filename"
>php.ini</TT
> 中的 <A
HREF="ini.core.html#ini.variables-order"
>variables_order</A
>
       配置指示来定义。此数组在 PHP 4.1.0 之前没有直接对应的版本。参见
       <A
HREF="function.import-request-variables.html"
><B
CLASS="function"
>import_request_variables()</B
></A
>。
      </P
><DIV
CLASS="caution"
><P
></P
><TABLE
CLASS="caution"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>小心</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;        自 PHP 4.3.0 起,<CODE
CLASS="varname"
>$_FILES</CODE
> 中的文件信息不再存在于
        <CODE
CLASS="varname"
>$_REQUEST</CODE
> 中。
       </P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
        当运行于<A
HREF="features.commandline.html"
>命令行</A
>模式时,此数组将<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>不会</I
></SPAN
>包含
        <CODE
CLASS="varname"
>argv</CODE
> 和 <CODE
CLASS="varname"
>argc</CODE
> 条目;它们已经存在于数组
        <CODE
CLASS="varname"
>$_SERVER</CODE
> 中。
       </P
></BLOCKQUOTE
></DIV
></DD
><DT
><A
HREF="reserved.variables.html#reserved.variables.session"
>$_SESSION</A
></DT
><DD
><P
>&#13;       当前注册给脚本会话的变量。类似于旧数组
       <CODE
CLASS="varname"
>$HTTP_SESSION_VARS</CODE
> 数组(依然有效,但反对使用)。详细信息,请参照
       <A
HREF="ref.session.html"
>Session 处理函数</A
>章节。
      </P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="language.variables.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>起始页</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="language.variables.scope.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>变量</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="language.variables.html"
ACCESSKEY="U"
>上一级</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>变量范围</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>