torben Mon Mar 11 19:57:47 2002 EDT
Modified files:
/phpdoc configure.in
/phpdoc/en language-defs.ent
/phpdoc/en/appendices reserved.xml
/phpdoc/en/language constants.xml variables.xml
Log:
Initial commit for by-extension separation of the full constant list.
Index: phpdoc/configure.in
diff -u phpdoc/configure.in:1.143 phpdoc/configure.in:1.144
--- phpdoc/configure.in:1.143 Sun Feb 24 06:04:22 2002
+++ phpdoc/configure.in Mon Mar 11 19:57:46 2002
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 1.143 2002/02/24 11:04:22 goba Exp $
+dnl $Id: configure.in,v 1.144 2002/03/12 00:57:46 torben Exp $
dnl autoconf initialisation
AC_INIT()
@@ -771,6 +771,9 @@
echo >> entities/chapters.ent
echo " Using the install part from installpart.xml"
fi
+echo "<!-- Separated list of predefined constants. -->" >> entities/chapters.ent
+echo "<!ENTITY appendices.reserved.constants SYSTEM 'reserved.constants.xml'>" >>
+entities/chapters.ent
+echo >> entities/chapters.ent
for file in `find $srcdir/en -name "*.xml" | sed -e"s%^$srcdir\/en\/%%g" | sort`
do
name=`echo $file | sed -e"s/\//./g" -e"s/.xml$//g" -e "s/_/-/g"`
Index: phpdoc/en/language-defs.ent
diff -u phpdoc/en/language-defs.ent:1.11 phpdoc/en/language-defs.ent:1.12
--- phpdoc/en/language-defs.ent:1.11 Tue Feb 5 09:39:18 2002
+++ phpdoc/en/language-defs.ent Mon Mar 11 19:57:46 2002
@@ -1,4 +1,4 @@
-<!-- $Revision: 1.11 $ -->
+<!-- $Revision: 1.12 $ -->
<!ENTITY PHPManual "PHP Manual">
<!ENTITY Date "Date:">
@@ -13,3 +13,4 @@
<!ENTITY FAQabbrev "FAQ">
<!ENTITY FunctionIndex "Function Index">
<!ENTITY CHMEdition "HTML Help Edition">
+<!ENTITY ReservedConstants "Predefined Constants">
Index: phpdoc/en/appendices/reserved.xml
diff -u phpdoc/en/appendices/reserved.xml:1.14 phpdoc/en/appendices/reserved.xml:1.15
--- phpdoc/en/appendices/reserved.xml:1.14 Sat Jan 19 02:23:49 2002
+++ phpdoc/en/appendices/reserved.xml Mon Mar 11 19:57:46 2002
@@ -1,230 +1,1057 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.14 $ -->
-<appendix id="reserved">
- <title>List of Reserved Words</title>
- <para>
- Here is the list of PHP reserved words, usually
- <link linkend="language.constants">constants</link> and
- <link linkend="language.variables.predefined">predefined variables</link>.
- You won't find any functions here, but rather language constructs.
- You shouldn't try to use such names as variable, function, constant or
- method names, as it will surely lead to confusion.
- <simplelist columns="3">
- <member>
- <link linkend="language.operators.logical">and</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$argv</link>
- </member>
- <member>
- <link linkend="control-structures.foreach">as</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$argc</link>
- </member>
- <member>
- <link linkend="control-structures.break">break</link>
- </member>
- <member>
- <link linkend="control-structures.switch">case</link>
- </member>
- <member>
- <link linkend="functions.old-syntax">cfunction</link>
- </member>
- <member>
- <link linkend="keyword.class">class</link>
- </member>
- <member>
- <link linkend="control-structures.continue">continue</link>
- </member>
- <member>
- <link linkend="control-structures.declare">declare</link>
- </member>
- <member>
- <link linkend="control-structures.switch">default</link>
- </member>
- <member>
- <link linkend="control-structures.do.while">do</link>
- </member>
- <member>
- <function>die</function>
- </member>
- <member>
- <function>echo</function>
- </member>
- <member>
- <link linkend="control-structures.else">else</link>
- </member>
- <member>
- <link linkend="control-structures.elseif">elseif</link>
- </member>
- <member>
- <function>empty</function>
- </member>
- <member>
- <link linkend="control-structures.declare">enddeclare</link>
- </member>
- <member>
- <link linkend="control-structures.alternative-syntax">endfor</link>
- </member>
- <member>
- <link linkend="control-structures.alternative-syntax">endforeach</link>
- </member>
- <member>
- <link linkend="control-structures.alternative-syntax">endif</link>
- </member>
- <member>
- <link linkend="control-structures.alternative-syntax">endswitch</link>
- </member>
- <member>
- <link linkend="control-structures.alternative-syntax">endwhile</link>
- </member>
- <member>
- <link linkend="language.constants">E_ALL</link>
- </member>
- <member>
- <link linkend="language.constants">E_PARSE</link>
- </member>
- <member>
- <link linkend="language.constants">E_ERROR</link>
- </member>
- <member>
- <link linkend="language.constants">E_WARNING</link>
- </member>
- <member>
- <link linkend="function.eval">eval</link>
- </member>
- <member>
- <function>exit</function>
- </member>
- <member>
- <link linkend="keyword.class">extends</link>
- </member>
- <member>
- <link linkend="language.constants">&false;</link>
- </member>
- <member>
- <link linkend="control-structures.for">for</link>
- </member>
- <member>
- <link linkend="control-structures.foreach">foreach</link>
- </member>
- <member>
- <link linkend="functions.user-defined">function</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$HTTP_COOKIE_VARS</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$HTTP_GET_VARS</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$HTTP_POST_VARS</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$HTTP_POST_FILES</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$HTTP_ENV_VARS</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$HTTP_SERVER_VARS</link>
- </member>
- <member>
- <link linkend="control-structures.if">if</link>
- </member>
- <member>
- <function>include</function>
- </member>
- <member>
- <function>include_once</function>
- </member>
- <member>
- <link linkend="language.variables.scope">global</link>
- </member>
- <member>
- <function>list</function>
- </member>
- <member>
- <link linkend="keyword.class">new</link>
- </member>
- <member>
- <link linkend="language.operators.logical">not</link>
- </member>
- <member>
- <link linkend="language.constants.predefined">NULL</link>
- </member>
- <member>
- <link linkend="functions.old-syntax">old_function</link>
- </member>
- <member>
- <link linkend="language.operators.logical">or</link>
- </member>
- <member>
- <link linkend="keyword.parent">parent</link>
- </member>
- <member>
- <link linkend="language.constants">PHP_OS</link>
- </member>
- <member>
- <link linkend="language.variables.predefined.php">$PHP_SELF</link>
- </member>
- <member>
- <link linkend="language.constants">PHP_VERSION</link>
- </member>
- <member>
- <function>print</function>
- </member>
- <member>
- <function>require</function>
- </member>
- <member>
- <function>require_once</function>
- </member>
- <member>
- <function>return</function>
- </member>
- <member>
- <link linkend="language.variables.scope">static</link>
- </member>
- <member>
- <link linkend="control-structures.switch">switch</link>
- </member>
- <member>
- <link linkend="keyword.class">stdClass</link>
- </member>
- <member>
- <link linkend="keyword.class">$this</link>
- </member>
- <member>
- <link linkend="language.constants">&true;</link>
- </member>
- <member>
- <link linkend="keyword.class">var</link>
- </member>
- <member>
- <link linkend="language.operators.logical">xor</link>
- </member>
- <member>
- <function>virtual</function>
- </member>
- <member>
- <link linkend="control-structures.while">while</link>
- </member>
- <member>
- <link linkend="language.constants">__FILE__</link>
- </member>
- <member>
- <link linkend="language.constants">__LINE__</link>
- </member>
- <member>
- <link linkend="language.oop.magic-functions">__sleep</link>
- </member>
- <member>
- <link linkend="language.oop.magic-functions">__wakeup</link>
- </member>
- </simplelist>
- </para>
+<!-- $Revision: 1.15 $ -->
+
+<!-- Note: Please do not link or translate this file yet.
+This is only an initial update, quite a few more commits will
+follow for this appendix. -->
+
+ <appendix id="reserved">
+ <title>List of Reserved Words</title>
+ <para>
+ The following is a listing of predefined identifiers in PHP. None
+ of the identifiers listed here should be used as identifiers in a
+ your scripts. These lists include keywords and predefined variable,
+ constant, and class names. These lists are neither exhaustive or
+ complete.
+ </para>
+
+ <sect1 id="reserved.keywords">
+ <title>List of Keywords</title>
+ <simpara>
+ These words have special meaning in PHP. Some of them represent things
+ which look like functions, some look like constants, and so on--but
+ they're not, really: they are language constructs. You cannot use any
+ of the following words as constants, class names, or function names.
+ Using them as variable names is generally OK, but could lead to confusion.
+ </simpara>
+
+ <table>
+ <title>PHP Keywords</title>
+ <tgroup cols="4">
+ <tbody>
+ <row>
+ <entry>
+ <link linkend="language.operators.logical">and</link>
+ </entry>
+ <entry>
+ <link linkend="language.operators.logical">or</link>
+ </entry>
+ <entry>
+ <link linkend="language.operators.logical">xor</link>
+ </entry>
+ <entry>
+ __FILE__
+ </entry>
+ </row>
+ <row>
+ <entry>
+ __LINE__
+ </entry>
+ <entry>
+ <function>array</function>
+ </entry>
+ <entry>
+ <link linkend="control-structures.foreach">as</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.break">break</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.switch">case</link>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="functions.old-syntax">cfunction</link>
+ </entry>
+ <entry>
+ <link linkend="keyword.class">class</link>
+ </entry>
+ <entry>
+ const
+ </entry>
+ <entry>
+ <link linkend="control-structures.continue">continue</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.declare">declare</link>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="control-structures.switch">default</link>
+ </entry>
+ <entry>
+ <function>die</function>
+ </entry>
+ <entry>
+ <link linkend="control-structures.do.while">do</link>
+ </entry>
+ <entry>
+ <function>echo</function>
+ </entry>
+ <entry>
+ <link linkend="control-structures.else">else</link>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="control-structures.elseif">elseif</link>
+ </entry>
+ <entry>
+ <function>empty</function>
+ </entry>
+ <entry>
+ <link linkend="control-structures.declare">enddeclare</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.alternative-syntax">endfor</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.alternative-syntax">endforeach</link>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="control-structures.alternative-syntax">endif</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.alternative-syntax">endswitch</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.alternative-syntax">endwhile</link>
+ </entry>
+ <entry>
+ <link linkend="function.eval">eval</link>
+ </entry>
+ <entry>
+ <function>exit</function>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="keyword.class">extends</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.for">for</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.foreach">foreach</link>
+ </entry>
+ <entry>
+ <link linkend="functions.user-defined">function</link>
+ </entry>
+ <entry>
+ <link linkend="language.variables.scope">global</link>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="control-structures.if">if</link>
+ </entry>
+ <entry>
+ <function>include</function>
+ </entry>
+ <entry>
+ <function>include_once</function>
+ </entry>
+ <entry>
+ <function>isset</function>
+ </entry>
+ <entry>
+ <function>list</function>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="keyword.class">new</link>
+ </entry>
+ <entry>
+ <link linkend="functions.old-syntax">old_function</link>
+ </entry>
+ <entry>
+ <function>print</function>
+ </entry>
+ <entry>
+ <function>require</function>
+ </entry>
+ <entry>
+ <function>require_once</function>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <function>return</function>
+ </entry>
+ <entry>
+ <link linkend="language.variables.scope">static</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.switch">switch</link>
+ </entry>
+ <entry>
+ <function>unset</function>
+ </entry>
+ <entry>
+ use
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <link linkend="keyword.class">var</link>
+ </entry>
+ <entry>
+ <link linkend="control-structures.while">while</link>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect1>
+
+ <sect1 id="reserved.variables">
+ <title>Predefined Variables</title>
+
+ <sect2 id="reserved.variables.server">
+ <title>Server variables: <varname>$_SERVER</varname></title>
+ <note>
+ <simpara>
+ Introduced in 4.1.0. In earlier versions, use
+ <varname>$HTTP_SERVER_VARS</varname>.
+ </simpara>
+ </note>
+
+ <simpara>
+ <varname>$_SERVER</varname> is an array containing information
+ such as headers, paths, and script locations. The entries in this
+ array are created by the webserver. There is no guarantee that
+ every webserver will provide any of these; servers may omit some,
+ or provide others not listed here. That said, a large number of
+ these variables are accounted for in the <ulink
+ url="&url.cgispec;">CGI 1.1 specification</ulink>, so you should
+ be able to expect those.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_SERVER;</command> to access it within functions or methods, as
+ you do with <varname>$HTTP_SERVER_VARS</varname>.
+ </simpara>
+
+ <simpara>
+ <varname>$HTTP_SERVER_VARS</varname> contains the same
+ information, but is not an autoglobal.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_SERVER</varname> and <varname>$HTTP_SERVER_VARS</varname>
+ arrays. For related information, see the security chapter titled
+ <link linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+
+ <simpara>
+ You may or may not find any of the following elements in
+ $_SERVER. Note that few, if any, of these will be available (or
+ indeed have any meaning) if running PHP on the command line.
+ </simpara>
+
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term>'<varname>GATEWAY_INTERFACE</varname>'</term>
+ <listitem>
+ <simpara>
+ What revision of the CGI specification the server is using;
+ i.e. 'CGI/1.1'.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SERVER_NAME</varname>'</term>
+ <listitem>
+ <simpara>
+ The name of the server host under which the current script is
+ executing. If the script is running on a virtual host, this
+ will be the value defined for that virtual host.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SERVER_SOFTWARE</varname>'</term>
+ <listitem>
+ <simpara>
+ Server identification string, given in the headers when
+ responding to requests.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SERVER_PROTOCOL</varname>'</term>
+ <listitem>
+ <simpara>
+ Name and revision of the information protocol via which the
+ page was requested; i.e. 'HTTP/1.0';
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>REQUEST_METHOD</varname>'</term>
+ <listitem>
+ <simpara>
+ Which request method was used to access the page; i.e. 'GET',
+ 'HEAD', 'POST', 'PUT'.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>QUERY_STRING</varname>'</term>
+ <listitem>
+ <simpara>
+ The query string, if any, via which the page was accessed.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>DOCUMENT_ROOT</varname>'</term>
+ <listitem>
+ <simpara>
+ The document root directory under which the current script is
+ executing, as defined in the server's configuration file.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_ACCEPT</varname>'</term>
+ <listitem>
+ <simpara>
+ Contents of the <literal>Accept:</literal> header from the
+ current request, if there is one.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_ACCEPT_CHARSET</varname>'</term>
+ <listitem>
+ <simpara>
+ Contents of the <literal>Accept-Charset:</literal> header
+ from the current request, if there is one. Example:
+ 'iso-8859-1,*,utf-8'.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_ACCEPT_ENCODING</varname>'</term>
+ <listitem>
+ <simpara>
+ Contents of the <literal>Accept-Encoding:</literal> header
+ from the current request, if there is one. Example: 'gzip'.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_ACCEPT_LANGUAGE</varname>'</term>
+ <listitem>
+ <simpara>
+ Contents of the <literal>Accept-Language:</literal> header
+ from the current request, if there is one. Example: 'en'.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_CONNECTION</varname>'</term>
+ <listitem>
+ <simpara>
+ Contents of the <literal>Connection:</literal> header from
+ the current request, if there is one. Example: 'Keep-Alive'.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_HOST</varname>'</term>
+ <listitem>
+ <simpara>
+ Contents of the <literal>Host:</literal> header from the
+ current request, if there is one.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_REFERER</varname>'</term>
+ <listitem>
+ <simpara>
+ The address of the page (if any) which referred the user
+ agent to the current page. This is set by the user agent. Not
+ all user agents will set this, and some provide the ability
+ to modify <varname>HTTP_REFERER</varname> as a feature. In
+ short, it cannot really be trusted.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>HTTP_USER_AGENT</varname>'</term>
+ <listitem>
+ <simpara>
+ Contents of the <literal>User_Agent:</literal> header from
+ the current request, if there is one. This is a string
+ denoting the user agent being which is accessing the page. A
+ typical example is: <computeroutput>Mozilla/4.5 [en] (X11; U;
+ Linux 2.2.9 i586)</computeroutput>. Among other things, you
+ can use this value with <function>get_browser</function> to
+ tailor your page's output to the capabilities of the user
+ agent.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>REMOTE_ADDR</varname>'</term>
+ <listitem>
+ <simpara>
+ The IP address from which the user is viewing the current
+ page.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>REMOTE_PORT</varname>'</term>
+ <listitem>
+ <simpara>
+ The port being used on the user's machine to communicate with
+ the web server.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SCRIPT_FILENAME</varname>'</term>
+ <listitem>
+ <simpara>
+ The absolute pathname of the currently executing script.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SERVER_ADMIN</varname>'</term>
+ <listitem>
+ <simpara>
+ The value given to the SERVER_ADMIN (for Apache) directive in
+ the web server configuration file. If the script is running
+ on a virtual host, this will be the value defined for that
+ virtual host.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SERVER_PORT</varname>'</term>
+ <listitem>
+ <simpara>
+ The port on the server machine being used by the web server
+ for communication. For default setups, this will be '80';
+ using SSL, for instance, will change this to whatever your
+ defined secure HTTP port is.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SERVER_SIGNATURE</varname>'</term>
+ <listitem>
+ <simpara>
+ String containing the server version and virtual host name
+ which are added to server-generated pages, if enabled.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>PATH_TRANSLATED</varname>'</term>
+ <listitem>
+ <simpara>
+ Filesystem- (not document root-) based path to the current
+ script, after the server has done any virtual-to-real
+ mapping.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>SCRIPT_NAME</varname>'</term>
+ <listitem>
+ <simpara>
+ Contains the current script's path. This is useful for pages
+ which need to point to themselves.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>REQUEST_URI</varname>'</term>
+ <listitem>
+ <simpara>
+ The URI which was given in order to access this page; for
+ instance, '/index.html'.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>argv</varname>'</term>
+ <listitem>
+ <simpara>
+ Array of arguments passed to the script. When the script is
+ run on the command line, this gives C-style access to the
+ command line parameters. When called via the GET method, this
+ will contain the query string.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>argc</varname>'</term>
+ <listitem>
+ <simpara>
+ Contains the number of command line parameters passed to the
+ script (if run on the command line).
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>'<varname>PHP_SELF</varname>'</term>
+ <listitem>
+ <simpara>
+ The filename of the currently executing script, relative to
+ the document root. If PHP is running as a command-line
+ processor, this variable is not available.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </para>
+
+ </sect2>
+
+ <sect2 id="reserved.variables.environment">
+ <title>Environment variables: <varname>$_ENV</varname></title>
+
+ <note>
+ <simpara>
+ Introduced in 4.1.0. In earlier versions, use
+ <varname>$HTTP_ENV_VARS</varname>.
+ </simpara>
+ </note>
+
+ <simpara>
+ These variables are imported into PHP's global namespace from the
+ environment under which the PHP parser is running. Many are
+ provided by the shell under which PHP is running and different
+ systems are likely running different kinds of shells, a
+ definitive list is impossible. Please see your shell's
+ documentation for a list of defined environment variables.
+ </simpara>
+
+ <simpara>
+ Other environment variables include the CGI variables, placed
+ there regardless of whether PHP is running as a server module or
+ CGI processor.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_ENV;</command> to access it within functions or methods, as
+ you do with <varname>$HTTP_ENV_VARS</varname>.
+ </simpara>
+
+ <simpara>
+ <varname>$HTTP_ENV_VARS</varname> contains the same
+ information, but is not an autoglobal.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_ENV</varname> and <varname>$HTTP_ENV_VARS</varname>
+ arrays. For related information, see the security chapter titled
+ <link linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+ </sect2>
+
+ <sect2 id="reserved.variables.cookies">
+ <title>HTTP Cookies: <varname>$_COOKIE</varname></title>
+
+ <note>
+ <simpara>
+ Introduced in 4.1.0. In earlier versions, use
+ <varname>$HTTP_COOKIE_VARS</varname>.
+ </simpara>
+ </note>
+
+ <simpara>
+ An associative array of variables passed to the current script
+ via HTTP cookies. Automatically global in any scope.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_COOKIE;</command> to access it within functions or methods, as
+ you do with <varname>$HTTP_COOKIE_VARS</varname>.
+ </simpara>
+
+ <simpara>
+ <varname>$HTTP_COOKIE_VARS</varname> contains the same
+ information, but is not an autoglobal.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_COOKIE</varname> and <varname>$HTTP_COOKIE_VARS</varname>
+ arrays. For related information, see the security chapter titled
+ <link linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+ </sect2>
+
+ <sect2 id="reserved.variables.get">
+ <title>HTTP GET variables: <varname>$_GET</varname></title>
+
+ <note>
+ <simpara>
+ Introduced in 4.1.0. In earlier versions, use
+ <varname>$HTTP_GET_VARS</varname>.
+ </simpara>
+ </note>
+
+ <simpara>
+ An associative array of variables passed to the current script
+ via the HTTP GET method. Automatically global in any scope.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_GET;</command> to access it within functions or methods, as
+ you do with <varname>$HTTP_GET_VARS</varname>.
+ </simpara>
+
+ <simpara>
+ <varname>$HTTP_GET_VARS</varname> contains the same
+ information, but is not an autoglobal.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_GET</varname> and <varname>$HTTP_GET_VARS</varname>
+ arrays. For related information, see the security chapter titled
+ <link linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+ </sect2>
+
+ <sect2 id="reserved.variables.post">
+ <title>HTTP POST variables: <varname>$_POST</varname></title>
+
+ <note>
+ <simpara>
+ Introduced in 4.1.0. In earlier versions, use
+ <varname>$HTTP_POST_VARS</varname>.
+ </simpara>
+ </note>
+
+ <simpara>
+ An associative array of variables passed to the current script
+ via the HTTP POST method. Automatically global in any scope.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_POST;</command> to access it within functions or methods, as
+ you do with <varname>$HTTP_POST_VARS</varname>.
+ </simpara>
+
+ <simpara>
+ <varname>$HTTP_POST_VARS</varname> contains the same
+ information, but is not an autoglobal.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_POST</varname> and <varname>$HTTP_POST_VARS</varname>
+ arrays. For related information, see the security chapter titled
+ <link linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+ </sect2>
+
+ <sect2 id="reserved.variables.files">
+ <title>HTTP File upload variables: <varname>$_FILES</varname></title>
+
+ <note>
+ <simpara>
+ Introduced in 4.1.0. In earlier versions, use
+ <varname>$HTTP_POST_FILES</varname>.
+ </simpara>
+ </note>
+
+ <simpara>
+ An associative array of items uploaded to the current script
+ via the HTTP POST method. Automatically global in any scope.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_FILES;</command> to access it within functions or methods, as
+ you do with <varname>$HTTP_POST_FILES</varname>.
+ </simpara>
+
+ <simpara>
+ <varname>$HTTP_POST_FILES</varname> contains the same
+ information, but is not an autoglobal.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_FILES</varname> and <varname>$HTTP_POST_FILES</varname>
+ arrays. For related information, see the security chapter titled
+ <link linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+ </sect2>
+
+ <sect2 id="reserved.variables.request">
+ <title>Request variables: <varname>$_REQUEST</varname></title>
+
+ <note>
+ <simpara>
+ Introduced in 4.1.0. There is no equivalent array in earlier
+ versions.
+ </simpara>
+ </note>
+
+ <simpara>
+ An associative array consisting of the contents of
+ <varname>$_GET</varname>, <varname>$_POST</varname>,
+ <varname>$_COOKIE</varname>, and <varname>$_FILES</varname>.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_REQUEST;</command> to access it within functions or methods.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_REQUEST</varname> array. For related information, see
+ the security chapter titled <link
+ linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+ </sect2>
+
+ <sect2 id="reserved.variables.session">
+ <title>Session variables: <varname>$_SESSION</varname></title>
+
+ <note>
+ <simpara>
+ Introduced in 4.1.0. In earlier versions, use
+ <varname>$HTTP_SESSION_VARS</varname>.
+ </simpara>
+ </note>
+
+ <simpara>
+ An associative array containing session variables available to
+ the current script. See the <link linkend="ref.session">Session
+ functions</link> documentation for more information on how this
+ is used.
+ </simpara>
+
+ <simpara>
+ This is a 'superglobal', or automatic global, variable. This
+ simply means that it is available in all scopes throughout a
+ script. You don't need to do a <command>global
+ $_SESSION;</command> to access it within functions or methods, as
+ you do with <varname>$HTTP_SESSION_VARS</varname>.
+ </simpara>
+
+ <simpara>
+ <varname>$HTTP_SESSION_VARS</varname> contains the same
+ information, but is not an autoglobal.
+ </simpara>
+
+ <simpara>
+ If the <link
+ linkend="ini.register-globals">register_globals</link> directive
+ is set, then these variables will also be made available in the
+ global scope of the script; i.e., separate from the
+ <varname>$_SESSION</varname> and <varname>$HTTP_SESSION_VARS</varname>
+ arrays. For related information, see the security chapter titled
+ <link linkend="security.registerglobals">Using Register
+ Globals</link>. These individual globals are not autoglobals.
+ </simpara>
+ </sect2>
+
+ <sect2 id="reserved.variables.phperrormsg">
+ <title>The previous error message: <varname>$php_errormsg</varname></title>
+ <simpara>
+ <varname>$php_errormsg</varname> is a variable containing the
+ text of the last error message generated by PHP. This variable
+ will only be available within the scope in which the error
+ occurred, and only if the <link
+ linkend="ini.track-errors">track_errors</link> configuration
+ option is turned on (it defaults to off).
+ </simpara>
+ </sect2>
+ </sect1>
+
+
+ <sect1 id="reserved.classes">
+ <title>Predefined Classes</title>
+
+ <sect2 id="reserved.classes.standard">
+ <title>Standard Defined Classes</title>
+
+ <simpara>
+ These classes are defined in the standard set of functions included
+ in the PHP build.
+ </simpara>
+
+ <variablelist>
+ <varlistentry>
+ <term><classname>Directory</classname></term>
+ <listitem>
+ <simpara>
+ The class from which <function>dir</function> is instantiated.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>stdClass</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="reserved.classes.ming">
+ <title><link linkend="ref.ming">Ming</link> Defined Classes</title>
+
+ <simpara>
+ These classes are defined in the
+ <link linkend="ref.ming">Ming</link>
+ extension, and will only be available when that extension has either
+ been compiled into PHP or dynamically loaded at runtime.
+ </simpara>
+
+ <variablelist>
+ <varlistentry>
+ <term><classname>swfshape</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swffill</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfgradient</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfbitmap</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swftext</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swftextfield</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swffont</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfdisplayitem</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfmovie</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfbutton</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfaction</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfmorph</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>swfsprite</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="reserved.classes.oci8">
+ <title><link linkend="ref.oci8">Oracle 8</link> Defined Classes</title>
+
+ <simpara>
+ These classes are defined in the <link
+ linkend="ref.oci8">Oracle 8</link> extension, and will only be
+ available when that extension has either been compiled into PHP
+ or dynamically loaded at runtime.
+ </simpara>
+
+ <variablelist>
+ <varlistentry>
+ <term><classname>OCI-Lob</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>OCI-Collection</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="reserved.classes.qtdom">
+ <title><link linkend="ref.qtdom">qtdom</link> Defined Classes</title>
+
+ <simpara>
+ These classes are defined in the
+ <link linkend="ref.qtdom">qtdom</link>
+ extension, and will only be available when that extension has either
+ been compiled into PHP or dynamically loaded at runtime.
+ </simpara>
+
+ <variablelist>
+ <varlistentry>
+ <term><classname>QDomDocument</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><classname>QDomNode</classname></term>
+ <listitem>
+ <simpara>
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ </sect1>
+
+ &appendices.reserved.constants;
+
</appendix>
<!-- Keep this comment at the end of the file
Index: phpdoc/en/language/constants.xml
diff -u phpdoc/en/language/constants.xml:1.23 phpdoc/en/language/constants.xml:1.24
--- phpdoc/en/language/constants.xml:1.23 Wed Dec 12 15:47:37 2001
+++ phpdoc/en/language/constants.xml Mon Mar 11 19:57:46 2002
@@ -1,14 +1,15 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.23 $ -->
+<!-- $Revision: 1.24 $ -->
<chapter id="language.constants">
<title>Constants</title>
<simpara>
A constant is a identifier (name) for a simple value. As the name
- suggests, that value cannot change during the execution of the script
- (the magic constants <constant>__FILE__</constant> and
- <constant>__LINE__</constant> are the only exception). A constant
- is case-sensitive by default. By convention constants are always
+ suggests, that value cannot change during the execution of the
+ script. (The 'magic constants' <constant>__FILE__</constant> and
+ <constant>__LINE__</constant> appear to be an exception to this,
+ but they're not actually constants.) A constant is case-sensitive
+ by default. By convention constant identifiers are always
uppercase.
</simpara>
<para>
@@ -27,9 +28,12 @@
characters from 127 through 255 (0x7f-0xff).
</simpara>
</note>
+
<simpara>
- The scope of a constant is global.
+ The scope of a constant is global--you can access it anywhere in
+ your script without regard to scope.
</simpara>
+
<sect1 id="language.constants.syntax">
<title>Syntax</title>
<simpara>
@@ -67,209 +71,74 @@
you want to know if a constant is set.
</simpara>
<para>
- This are the differences with variables:
- <itemizedlist>
- <listitem>
- <simpara>
- Constants do not have a dollar sign (<literal>$</literal>) before them;
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Constants may be defined and accessed anywhere without regard to variable
- scoping rules;
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Constants may not be redefined or undefined once they have
- been set; and
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Constants may only evaluate to scalar values.
- </simpara>
- </listitem>
- </itemizedlist>
- </para>
-
- <para>
- <example>
- <title>Defining Constants</title>
- <programlisting role="php">
-<![CDATA[
-<?php
-define("CONSTANT", "Hello world.");
-echo CONSTANT; // outputs "Hello world."
-echo Constant; // outputs "Constant" and issues a notice.
-?>
-]]>
- </programlisting>
- </example>
-
- </para>
-
- </sect1>
-
- <sect1 id="language.constants.predefined">
- <title>Predefined constants</title>
- <para>
- The predefined constants (always available) are:
-
- <variablelist>
-
- <varlistentry>
- <term>__FILE__ (case-insensitive)</term>
- <listitem>
- <simpara>
- The name of the script file presently being parsed. If used
- within a file which has been included or required, then the
- name of the included file is given, and not the name of the
- parent file.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>__LINE__ (case-insensitive)</term>
- <listitem>
- <simpara>
- The number of the line within the current script file which is
- being parsed. If used within a file which has been included or
- required, then the position within the included file is given.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>PHP_VERSION</term>
- <listitem>
- <simpara>
- The string representation of the version of the PHP parser
- presently in use; for example '4.1.0'.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>PHP_OS</term>
+ These are the differences between constants and variables:
+ <itemizedlist>
<listitem>
<simpara>
- The name of the operating system on which the PHP parser is
- executing;. Possible values may be :
- "AIX", "Darwin" (MacOS), "Linux", "SunOS", "WIN32", "WINNT".
- Note: other values may be available too.
+ Constants do not have a dollar sign (<literal>$</literal>)
+ before them;
</simpara>
</listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&true; (case-insensitive)</term>
<listitem>
<simpara>
- A &true; value (see the <type>boolean</type> type).
+ Constants may only be defined using the
+ <function>define</function> function, not by simple assignment;
</simpara>
</listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&false; (case-insensitive)</term>
<listitem>
<simpara>
- A &false; value (see the <type>boolean</type> type).
+ Constants may be defined and accessed anywhere without regard
+ to variable scoping rules;
</simpara>
</listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&null; (case-insensitive)</term>
<listitem>
<simpara>
- A &null; value (see the <type>null</type> type).
+ Constants may not be redefined or undefined once they have been
+ set; and
</simpara>
</listitem>
- </varlistentry>
-
- <varlistentry>
- <term>E_ERROR</term>
<listitem>
<simpara>
- Denotes an error other than a parsing error from which
- recovery is not possible.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>E_WARNING</term>
- <listitem>
- <simpara>
- Denotes a condition where PHP knows something is wrong, but
- will continue anyway; these can be caught by the script
- itself. An example would be an invalid regexp in
- <function>ereg</function>.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>E_PARSE</term>
- <listitem>
- <simpara>
- The parser choked on invalid syntax in the script
- file. Recovery is not possible.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>E_NOTICE</term>
- <listitem>
- <simpara>
- Something happened which may or may not be an error. Execution
- continues. Examples include using an unquoted string as an array
- index, or accessing a variable which has not been set.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>E_ALL</term>
- <listitem>
- <simpara>
- All of the E_* constants rolled into one. If used with
- <function>error_reporting</function>, will cause any and all
- problems noticed by PHP to be reported.
- </simpara>
+ Constants may only evaluate to scalar values.
+ </simpara>
</listitem>
- </varlistentry>
-
- </variablelist>
- </para>
+ </itemizedlist>
+ </para>
<para>
- The <literal>E_*</literal> constants are typically used with the
- <function>error_reporting</function> function for setting the
- error reporting level. See all these constants at
- <link linkend="features.error-handling">Error handling</link>.
-
<example>
- <title>Using __FILE__ and __LINE__</title>
+ <title>Defining Constants</title>
<programlisting role="php">
<![CDATA[
<?php
-function report_error($file, $line, $message)
-{
- echo "An error occured in $file on line $line: $message.";
-}
-
-report_error(__FILE__, __LINE__, "Something went wrong!");
+define("CONSTANT", "Hello world.");
+echo CONSTANT; // outputs "Hello world."
+echo Constant; // outputs "Constant" and issues a notice.
?>
]]>
</programlisting>
</example>
+
</para>
+ </sect1>
+
+ <sect1 id="language.constants.predefined">
+ <title>Predefined constants</title>
+
+ <simpara>
+ PHP provides a large number of predefined constants to any script
+ which it runs. Many of these constants, however, are created by
+ various extensions, and will only be present when those extensions
+ are available, either via dynamic loading or because they have
+ been compiled in.
+ </simpara>
+
+ <simpara>
+ A list of predefined constants is available in the section <link
+ linkend="reserved.constants">Predefined constants</link>.
+ </simpara>
+
+
</sect1>
</chapter>
Index: phpdoc/en/language/variables.xml
diff -u phpdoc/en/language/variables.xml:1.35 phpdoc/en/language/variables.xml:1.36
--- phpdoc/en/language/variables.xml:1.35 Wed Feb 6 20:21:59 2002
+++ phpdoc/en/language/variables.xml Mon Mar 11 19:57:46 2002
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.35 $ -->
+<!-- $Revision: 1.36 $ -->
<chapter id="language.variables">
<title>Variables</title>
@@ -121,577 +121,10 @@
</simpara>
<simpara>
- Despite these factors, here is a list of predefined variables
- available under a stock installation of PHP 3 running as a module
- under a stock installation of <ulink
- url="&url.apache;">Apache</ulink> 1.3.6.
+ A list of many (but not all) of the predefined variables is
+ available in the section <link
+ linkend="reserved.variables">Predefined variables</link>.
</simpara>
-
- <simpara>
- For a list of all predefined variables (and lots of other useful
- information), please see (and use) <function>phpinfo</function>.
- </simpara>
-
- <note>
- <simpara>
- This list is neither exhaustive nor intended to be. It is simply
- a guideline as to what sorts of predefined variables you can
- expect to have access to in your script.
- </simpara>
- </note>
-
- <sect2 id="language.variables.predefined.apache">
- <title>Apache variables</title>
-
- <simpara>
- These variables are created by the <ulink
- url="&url.apache;">Apache</ulink> webserver. If you are running
- another webserver, there is no guarantee that it will provide the
- same variables; it may omit some, or provide others not listed
- here. That said, a large number of these variables are accounted
- for in the <ulink url="&url.cgispec;">CGI 1.1
- specification</ulink>, so you should be able to expect those.
- </simpara>
- <simpara>
- Note that few, if any, of these will be available (or indeed have
- any meaning) if running PHP on the command line.
- </simpara>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>$GATEWAY_INTERFACE</term>
- <listitem>
- <simpara>
- What revision of the CGI specification the server is using;
- i.e. 'CGI/1.1'.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SERVER_NAME</term>
- <listitem>
- <simpara>
- The name of the server host under which the current script is
- executing. If the script is running on a virtual host, this
- will be the value defined for that virtual host.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SERVER_SOFTWARE</term>
- <listitem>
- <simpara>
- Server identification string, given in the headers when
- responding to requests.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SERVER_PROTOCOL</term>
- <listitem>
- <simpara>
- Name and revision of the information protocol via which the
- page was requested; i.e. 'HTTP/1.0';
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$REQUEST_METHOD</term>
- <listitem>
- <simpara>
- Which request method was used to access the page; i.e. 'GET',
- 'HEAD', 'POST', 'PUT'.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$QUERY_STRING</term>
- <listitem>
- <simpara>
- The query string, if any, via which the page was accessed.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$DOCUMENT_ROOT</term>
- <listitem>
- <simpara>
- The document root directory under which the current script is
- executing, as defined in the server's configuration file.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_ACCEPT</term>
- <listitem>
- <simpara>
- Contents of the <literal>Accept:</literal> header from the
- current request, if there is one.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_ACCEPT_CHARSET</term>
- <listitem>
- <simpara>
- Contents of the <literal>Accept-Charset:</literal> header
- from the current request, if there is one. Example:
- 'iso-8859-1,*,utf-8'.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_ACCEPT_ENCODING</term>
- <listitem>
- <simpara>
- Contents of the <literal>Accept-Encoding:</literal> header
- from the current request, if there is one. Example: 'gzip'.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_ACCEPT_LANGUAGE</term>
- <listitem>
- <simpara>
- Contents of the <literal>Accept-Language:</literal> header
- from the current request, if there is one. Example: 'en'.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_CONNECTION</term>
- <listitem>
- <simpara>
- Contents of the <literal>Connection:</literal> header from
- the current request, if there is one. Example: 'Keep-Alive'.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_HOST</term>
- <listitem>
- <simpara>
- Contents of the <literal>Host:</literal> header from the
- current request, if there is one.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_REFERER</term>
- <listitem>
- <simpara>
- The address of the page (if any) which referred the browser
- to the current page. This is set by the user's browser; not
- all browsers will set this.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_USER_AGENT</term>
- <listitem>
- <simpara>
- Contents of the <literal>User_Agent:</literal> header from
- the current request, if there is one. This is a string
- denoting the browser software being used to view the current
- page; i.e. <computeroutput>Mozilla/4.5 [en] (X11; U; Linux
- 2.2.9 i586)</computeroutput>. Among other things, you can use
- this value with <function>get_browser</function> to tailor
- your page's functionality to the capabilities of the user's
- browser.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$REMOTE_ADDR</term>
- <listitem>
- <simpara>
- The IP address from which the user is viewing the current
- page.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$REMOTE_PORT</term>
- <listitem>
- <simpara>
- The port being used on the user's machine to communicate with
- the web server.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SCRIPT_FILENAME</term>
- <listitem>
- <simpara>
- The absolute pathname of the currently executing script.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SERVER_ADMIN</term>
- <listitem>
- <simpara>
- The value given to the SERVER_ADMIN (for Apache) directive in
- the web server configuration file. If the script is running
- on a virtual host, this will be the value defined for that
- virtual host.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SERVER_PORT</term>
- <listitem>
- <simpara>
- The port on the server machine being used by the web server
- for communication. For default setups, this will be '80';
- using SSL, for instance, will change this to whatever your
- defined secure HTTP port is.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SERVER_SIGNATURE</term>
- <listitem>
- <simpara>
- String containing the server version and virtual host name
- which are added to server-generated pages, if enabled.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$PATH_TRANSLATED</term>
- <listitem>
- <simpara>
- Filesystem- (not document root-) based path to the current
- script, after the server has done any virtual-to-real
- mapping.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$SCRIPT_NAME</term>
- <listitem>
- <simpara>
- Contains the current script's path. This is useful for pages
- which need to point to themselves.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$REQUEST_URI</term>
- <listitem>
- <simpara>
- The URI which was given in order to access this page; for
- instance, '/index.html'.
- </simpara>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
-
- </sect2>
-
- <sect2 id="language.variables.predefined.environment">
- <title>Environment variables</title>
-
- <simpara>
- These variables are imported into PHP's global namespace from the
- environment under which the PHP parser is running. Many are
- provided by the shell under which PHP is running and different
- systems are likely running different kinds of shells, a
- definitive list is impossible. Please see your shell's
- documentation for a list of defined environment variables.
- </simpara>
- <simpara>
- Other environment variables include the CGI variables, placed
- there regardless of whether PHP is running as a server module or
- CGI processor.
- </simpara>
-
- </sect2>
-
- <sect2 id="language.variables.predefined.php">
- <title>PHP variables</title>
-
- <simpara>
- These variables are created by PHP itself. The
- <varname>$HTTP_*_VARS</varname> variables are available only if
- the <link linkend="ini.track-vars">track_vars</link>
- configuration is turned on. When enabled, the variables are
- always set, even if they are empty arrays. This prevents
- a malicious user from spoofing these variables.
- </simpara>
-
- <note>
- <para>
- As of PHP 4.0.3, <link
- linkend="ini.track-vars">track_vars</link> is always turned on,
- regardless of the configuration file setting.
- </para>
- </note>
-
- <note>
- <para>
- The new "Superglobals" were added in PHP version 4.1.0. See the
- <ulink url="&url.php.release4.1.0;">4.1.0 Release
- Announcement</ulink> for more details. These are the
- <varname>$_GET</varname>, <varname>$_POST</varname>,
- <varname>$_ENV</varname>, <varname>$_SERVER</varname>,
- <varname>$_COOKIE</varname>, <varname>$_REQUEST</varname>
- <varname>$_FILES</varname>, and <varname>$_SESSION</varname>
- arrays, and they are informally known as
- <emphasis>Superglobals</emphasis> since they are always
- available without regard to scope. These deprecate the older
- respective <varname>$HTTP_*_VARS</varname> arrays.
- </para>
- </note>
-
- <para>
- If the <link
- linkend="ini.register-globals">register_globals</link> directive
- is set, then these variables will also be made available in the
- global scope of the script; i.e., separate from the
- <varname>$HTTP_*_VARS</varname> and <varname>$_*</varname>
- arrays. For related information, see the security chapter titled
- <link linkend="security.registerglobals">Using Register Globals</link>.
- </para>
-
- <para>
- <variablelist>
- <varlistentry>
- <term>$argv</term>
- <listitem>
- <simpara>
- Array of arguments passed to the script. When the script is
- run on the command line, this gives C-style access to the
- command line parameters. When called via the GET method, this
- will contain the query string.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$argc</term>
- <listitem>
- <simpara>
- Contains the number of command line parameters passed to the
- script (if run on the command line).
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$PHP_SELF</term>
- <listitem>
- <simpara>
- The filename of the currently executing script, relative to
- the document root. If PHP is running as a command-line
- processor, this variable is not available. This variable
- will include path information if present
- (e.g. $PHP_SELF on this address:
- "http://example.com/test.php/foo.bar" would be
- "/test.php/foo.bar")
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_COOKIE_VARS</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via HTTP cookies.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_COOKIE</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via HTTP cookies. Automatically global in any
- scope. Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_GET_VARS</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via the HTTP GET method.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_GET</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via the HTTP GET method. Automatically global in
- any scope. Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_POST_VARS</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via the HTTP POST method.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_POST</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via the HTTP POST method. Automatically global in
- any scope. Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_POST_FILES</term>
- <listitem>
- <simpara>
- An associative array of variables containing information
- about files uploaded via the HTTP POST method. See <link
- linkend="features.file-upload.post-method">POST method
- uploads</link> for information on the contents of
- <varname>$HTTP_POST_FILES</varname>. Introduced in 4.0.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_FILES</term>
- <listitem>
- <simpara>
- An associative array of variables containing information
- about files uploaded via the HTTP POST method. See <link
- linkend="features.file-upload.post-method">POST method
- uploads</link> for information on the contents of
- <varname>$_FILES</varname>. Automatically global in any scope.
- Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_ENV_VARS</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via the parent environment.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_ENV</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script via the parent environment. Automagically global
- in any scope. Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_SERVER_VARS</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script from the HTTP server. These variables are analogous to
- the Apache variables described above.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_SERVER</term>
- <listitem>
- <simpara>
- An associative array of variables passed to the current
- script from the HTTP server. These variables are analogous to
- the Apache variables described above. Automatically global
- in any scope. Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$HTTP_SESSION_VARS</term>
- <listitem>
- <simpara>
- An associative array of session variables passed to the current
- script.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_SESSION</term>
- <listitem>
- <simpara>
- An associative array of session variables passed to the
- current script. Automatically global in any scope. Creating
- new entries in the $_SESSION array will automatically
- register them as session variables, as if you called
- <function>session_register</function>. Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>$_REQUEST</term>
- <listitem>
- <simpara>
- An associative array merged from the GET, POST, and Cookie variables.
- In other words - all the information that is coming from the user,
- and that from a security point of view, cannot be trusted.
- Automatically global in any scope. Introduced in PHP 4.1.0.
- </simpara>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </para>
-
- </sect2>
</sect1>