cvs: phpdoc /en/language variables.xml
| From: | Kevin Kee | Date: | Sat, 07 Jun 2003 17:27:52 +0000 |
| Subject: | cvs: phpdoc /en/language variables.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969354330@lists.php.net to get a copy of this message | ||
kevinkee Sat Jun 7 13:27:52 2003 EDT
Modified files:
/phpdoc/en/language variables.xml
Log:
new file
Index: phpdoc/en/language/variables.xml diff -u phpdoc/en/language/variables.xml:1.59 phpdoc/en/language/variables.xml:1.60 --- phpdoc/en/language/variables.xml:1.59 Fri Jun 6 01:33:09 2003 +++ phpdoc/en/language/variables.xml Sat Jun 7 13:27:52 2003 @@ -1,28 +1,22 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.59 $ --> +<?xml version="1.0" encoding="big5"?> +<!-- $Revision: 1.60 $ --> <chapter id="language.variables"> - <title>Variables</title> + <title>¦UÃþÅܼÆ</title> <sect1 id="language.variables.basics"> - <title>Basics</title> + <title>°ò¥»ª¾ÃÑ</title> <simpara> - Variables in PHP are represented by a dollar sign followed by the - name of the variable. The variable name is case-sensitive. + ©Ò¦³ PHP ªºÅܼƳ£¬O¥H "$" ¬°¶}ºÝ¡A«á¥[ÅܼƦW©Ò²Õ¦¨ªº¡CÅܼƦWºÙ¬O¦³¤j¤p¼g¤§¤Àªº¡C </simpara> <para> - Variable names follow the same rules as other labels in PHP. A - valid variable name starts with a letter or underscore, followed - by any number of letters, numbers, or underscores. As a regular - expression, it would be expressed thus: - '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' + PHP ªºÅܼƦWºÙ©M¨ä¥L¼ÐÅÒ¦³µÛ¬Û¦Pªº³W«h¡C¤@Ó¦³®ÄªºÅܼƬO¥Ñ^¤å¦r¥À©Î©³½u¶}©l¡A¸òµÛ¬O¥ô·Nªøµuªº¦r¥À¡B¼Æ¦r©Î©³½u¡C«ö¥¿³W¹Bºâ¦¡¡A¥¦¥i¥Hªí¹F¬°¡G'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' </para> <note> <simpara> - For our purposes here, a letter is a-z, A-Z, and the ASCII - characters from 127 through 255 (0x7f-0xff). + ¦r¥À¬° a-z¡AA-Z¡A¦Ó ASCII ¦r²Å«h±q 127 ¦Ü 255¡q0x7f-0xff¡r¡C </simpara> </note> @@ -45,33 +39,14 @@ </para> <para> - In PHP 3, variables are always assigned by value. That is to say, - when you assign an expression to a variable, the entire value of - the original expression is copied into the destination - variable. This means, for instance, that after assigning one - variable's value to another, changing one of those variables will - have no effect on the other. For more information on this kind of - assignment, see the chapter on <link - linkend="language.expressions">Expressions</link>. + PHP 3 ¤¤¡AÅܼÆÁ`¬O¥ÑÈ«ü¬£¡C¤]´N¬O»¡¡A·í±z±N¤@Ó¹Bºâ¦¡ªºÈ«ü¬£µ¹¤@ÓÅܼƮɡA¾ãÓì©l¹Bºâ¦¡ªºÈ±N·|½Æ»s¨ì¥ØªºÅܼơC¨Ò¦p¡A·í±N¤@ÓÅܼƪºÈ«ü¬£µ¹¥t¤@ÓÅܼƤ§«á¡A§ó§ï·í¤¤ªº¥ô¦ó¤@ÓÅܼƪºÈ¨Ã¤£·|¼vÅT¨ì¥t¤@ÓÅܼƪºÈ¡C·Qnª¾¹D§ó¦h³oÃþªº«ü¬£¡A½Ð°Ñ¾\<link linkend="language.expressions">¹Bºâ¦¡</link>³o¤@³¹¡C </para> <para> - PHP 4 offers another way to assign values to variables: - <link linkend="language.references">assign by reference</link>. - This means that the new variable simply references (in other words, - "becomes an alias for" or "points to") the original variable. - Changes to the new variable affect the original, and vice versa. - This also means that no copying is performed; thus, the assignment - happens more quickly. However, any speedup will likely be noticed - only in tight loops or when assigning large - <link linkend="language.types.array">arrays</link> or - <link linkend="language.types.object">objects</link>. + PHP 4 «h´£¨Ñ¤F¥t¤@ºØ«ü¬£ÅܼÆÈªº¤èªk¡G<link linkend="language.references">¶Ç§}«ü¬£</link>¡A§Y·sÅܼƥu¬O°Ñ·Óì¨ÓÅܼƤ¤ªºÈ¡A©Î»¡·sªºÅܼƦ¨¬°ì¨ÓÅܼƪº§O¦W¡C¦¹®É¡A§ó§ï¨âÓÅܼƤ¤¥ô¦ó¤@ÓªºÈ³£·|¦P®É§ó§ï¥t¤@ÓªºÈ¡C¥Ñ©ó¨S¦³°õ¦æ¹ê»Úªº½Æ»s¤u§@¡A«ü¬£ªº¾Þ§@¤]¦]¦¹§ó¥[§Ö±¶¡C¤£¹L¡A¥u¦³¦bºò±Kªº°j°é©Î«ü¬£¤j¶qªº<link linkend="language.types.array">°}¦C</link>©Î<link linkend="language.types.object">ª«¥ó</link>®É¤~·|¹îı³t«×ªº´£¤É¡C </para> <para> - To assign by reference, simply prepend an ampersand (&) to the - beginning of the variable which is being assigned (the source - variable). For instance, the following code snippet outputs 'My - name is Bob' twice: - + ¨Ï¥Î¶Ç§}«ü¬£¡A¥u¶·¦b³Q°Ñ·ÓªºìÅܼƫe¥[¤W¤@Ó (&) ªº²Å¸¹¡C¨Ò¦p¡A¤U¦Cµ{¦¡½X¦b¨Ï¥Î¶Ç§}«ü¬£«á¿é¥X 'My name is Bob' ¨â¦¸¡C + <informalexample> <programlisting role="php"> <![CDATA[ @@ -88,8 +63,7 @@ </para> <para> - One important thing to note is that only named variables may be - assigned by reference. + »Ýnª`·Nªº¬O¥u¦³¯u¥¿©R¦WªºÅܼƤ~¥i¥H¥Î¨Ó¶i¦æ¶Ç§}«ü¬£¡C <informalexample> <programlisting role="php"> <![CDATA[ @@ -112,89 +86,48 @@ </sect1> <sect1 id="language.variables.predefined"> - <title>Predefined variables</title> + <title>¹w³]ªºÅܼÆ</title> <simpara> - PHP provides a large number of predefined variables to any script - which it runs. Many of these variables, however, cannot be fully - documented as they are dependent upon which server is running, the - version and setup of the server, and other factors. Some of these - variables will not be available when PHP is run on the - <link linkend="features.commandline">command line</link>. - For a listing of these variables, please see the section on - <link linkend="reserved.variables">Reserved Predefined Variables</link>. + PHP ¬°¥¦°õ¦æªºµ{¦¡´£¨Ñ¤F¤j¶qªº¹w³]ÅܼơCµM¦Ó¡A¥Ñ¤_¦³³\¦hÅܼƦ]¨Ì¿à¨ä©Ò°õ¦æªº¦øªA¾¹ºØÃþ¡Bª©¥»¡B¦w¸Ëµ¥±¡ªp¦Ó©w¡A¦]¦¹Ãø¥H¦³§¹¾ãªº³Q°O¸ü¤U¨Ó¡C§ó¦³¤@¨ÇÅܼƦb<link linkend="features.commandline">«ü¥O¦æ</link>ªº¼Ò¦¡¹B¦æ®É¬O¤£¯à¨Ï¥Îªº¡C¦³Ãö³o¨ÇÅܼƪº¦Cªí¡A½Ð°Ñ¦Ò<link linkend="reserved.variables">«O¯dªº¥ý«e©w¸qÅܼÆ</link>¤@¸`¡C </simpara> <warning> <simpara> - In PHP 4.2.0 and later, the default value for the PHP directive <link - linkend="ini.register-globals">register_globals</link> is - <emphasis>off</emphasis>. This is a major change in PHP. Having - register_globals <emphasis>off</emphasis> affects the set of predefined - variables available in the global scope. For example, to get - <varname>DOCUMENT_ROOT</varname> you'll use - <varname>$_SERVER['DOCUMENT_ROOT']</varname> instead of - <varname>$DOCUMENT_ROOT</varname>, or <varname>$_GET['id']</varname> from - the URL <literal>http://www.example.com/test.php?id=3</literal> instead - of <varname>$id</varname>, or <varname>$_ENV['HOME']</varname> instead of - <varname>$HOME</varname>. + PHP 4.2.0 ¥H«áªºª©¥»¡A<link linkend="ini.register-globals">register_globals</link> «ü¥Oªº¹w³]ȬO <emphasis>off</emphasis>¡C³o¬O¤@Ó«¤jªº§ïÅÜ¡C±N register_globals ªºÈ¹w³]¬° <emphasis>off</emphasis> ·|¼vÅT¨ì¹w³]ÅܼƦb¥þ°ì½d³ò¤ºªº¦³®Ä©Ê¡C¨Ò¦p¡An±o¨ì <varname>DOCUMENT_ROOT</varname> ªºÈ¡AÀ³¨Ï¥Î <varname>$_SERVER['DOCUMENT_ROOT']</varname> ¦Ó¤£¬O <varname>$DOCUMENT_ROOT</varname>¡B¨Ï¥Î <varname>$_GET['id']</varname> ¥H¨ú±o URL <literal>http://www.example.com/test.php?id=3</literal> ¤¤ id ªºÈ¡A¦Ó¤£¬O¥Î <varname>$id</varname>¡B©Î¨Ï¥Î <varname>$_ENV['HOME']</varname> ¨Ó¨ú¥N <varname>$HOME</varname>¡C </simpara> <simpara> - For related information on this change, read the configuration entry for - <link linkend="ini.register-globals">register_globals</link>, the security - chapter on <link linkend="security.registerglobals">Using Register Globals - </link>, as well as the PHP <ulink url="&url.php.release4.1.0;">4.1.0 - </ulink> and <ulink url="&url.php.release4.2.0;">4.2.0</ulink> Release - Announcements. + §ó¦h»P¦¹§ó§ï¬ÛÃöªº¸ê®Æ¥i¦b <link linkend="ini.register-globals">register_globals</link> ªº³]¸m¤@¸`¡B<link linkend="security.registerglobals">¨Ï¥Î Register Globals</link> ¤¤ªº¦w¥þ³¹¡A©Î¦b <ulink url="&url.php.release4.1.0;">4.1.0</ulink> ¤Î <ulink url="&url.php.release4.2.0;">4.2.0</ulink> ªºµo¦æ³q§i¤¤¨ú±o¡C </simpara> <simpara> - Using the available PHP Reserved Predefined Variables, like the - <link linkend="language.variables.superglobals">superglobal arrays</link>, - is preferred. + §ÚÌ«ØÄ³±z¨Ï¥Î PHP ´£¨Ñªº«O¯d¹w³]ÅܼơA¦p <link linkend="language.variables.superglobals">superglobal ³¯¦C</link>¡C </simpara> </warning> <simpara> - From version 4.1.0 onward, PHP provides an additional set of predefined arrays - containing variables from the web server (if applicable), the - environment, and user input. These new arrays are rather special - in that they are automatically global--i.e., automatically - available in every scope. For this reason, they are often known as - 'autoglobals' or 'superglobals'. (There is no mechanism in PHP for - user-defined superglobals.) The superglobals are listed below; - however, for a listing of their contents and further discussion on - PHP predefined variables and their natures, please see the section - <link linkend="reserved.variables">Reserved Predefined Variables</link>. - Also, you'll notice how the older predefined variables - (<varname>$HTTP_*_VARS</varname>) still exist. - + ¦Û 4.1.0 ª©¥»°_¡APHP ÃB¥~´£¨Ñ¤F¤@®M¹w³]°}¦C¡A·í¤¤¥]§t¤F¨Ó¦Û¦øªA¾¹¡q¦p¾A¥Î¡r¡BÀô¹Ò¡B¤Î¨Ï¥ÎªÌ¿é¤JªºÅܼơC³o¨Ç·s³¯¦C¤ñ¸û¯S§O¡A¦]¦¹¥¦Ì·|¦Û°Ê¦a³]¬°¥þ°ì¡A§Y¥i¥H¦b©Ò¦³½d³ò¤º¨Ï¥Î¡C¥¿¦]¦p¦¹¡A¥¦Ì¤]³QºÙ¬° 'autoglobals' ©Î 'superglobals'¡C¡qPHP ©|¥¼¦³¨Ï¥ÎªÌ¦Û¦æ©w¸q superglobals ªº¥\¯à¡C¡r§Ú̱N¦b¤U±¦C¥X superglobals¡A¦ýnª¾¹D¥¦Ìªº¤º®e©M PHP ¹w³]Åܼƪº²`¤J°Q½×¡A½Ð°Ñ¦Ò<link linkend="reserved.variables">«O¯dªº¥ý«e©w¸qÅܼÆ</link>¤@¸`¡C¦¹¥~¡A±z¤]·|¯d·N¦³ªº¹w³]ÅÜ¼Æ (<varname>$HTTP_*_VARS</varname>) ¤´µM¦s¦b¡C + &avail.register-long-arrays; </simpara> <note> - <title>Variable variables</title> + <title>¥iÅÜÅܼÆ</title> <para> - Superglobals cannot be used as - <link linkend="language.variables.variable">variable variables</link>. + Superglobals ¤£¯à·í§@<link linkend="language.variables.variable">¥iÅÜÅܼÆ</link>¨Ó¨Ï¥Î¡C </para> </note> <para> - If certain variables in <link - linkend="ini.variables-order">variables_order</link> are not set, their - appropriate PHP predefined arrays are also left empty. + ¦pªG¬Y¨Ç <link linkend="ini.variables-order">variables_order</link> ¤¤ªºÅܼƨS¦³³Q³]©w¡A¥¦Ì¬Û¹ïªº PHP ¹w³]³¯¦C¤]±N·|¬OªÅªº¡C </para> <variablelist id="language.variables.superglobals"> - <title>PHP Superglobals</title> + <title>PHP ªº Superglobals</title> <varlistentry> <term><link linkend="reserved.variables.globals">$GLOBALS</link></term> <listitem> <simpara> - Contains a reference to every variable which is currently - available within the global scope of the script. The keys of - this array are the names of the global variables. - <varname>$GLOBALS</varname> has existed since PHP 3. + ¥]§t¤@Ó«ü¦Vµ{¦¡¥þ°ì½d³ò¤º¥i¥ÎÅܼƪº¯Á¤Þ¡C¦¹³¯¦Cªº¯Á¤ÞÁ䬰¥þ°ìÅܼƪº¦WºÙ¡C<varname>$GLOBALS</varname> ¦Û PHP 3 ¶}©l´N¤w¦s¦b¡C </simpara> </listitem> </varlistentry> @@ -202,10 +135,7 @@ <term><link linkend="reserved.variables.server">$_SERVER</link></term> <listitem> <simpara> - Variables set by the web server or otherwise directly related - to the execution environment of the current script. Analogous - to the old <varname>$HTTP_SERVER_VARS</varname> array (which is - still available, but deprecated). + ¥Ñºô¶¦øªA¾¹³]©wªºÅܼƩΥثeªºµ{¦¡©Ò°õ¦æªºÀô¹Ò²£¥ÍªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_SERVER_VARS</varname> ³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -213,9 +143,7 @@ <term><link linkend="reserved.variables.get">$_GET</link></term> <listitem> <simpara> - Variables provided to the script via HTTP GET. Analogous to the - old <varname>$HTTP_GET_VARS</varname> array (which is still - available, but deprecated). + ³q¹L HTTP GET ´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_GET_VARS</varname> ³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -223,9 +151,7 @@ <term><link linkend="reserved.variables.post">$_POST</link></term> <listitem> <simpara> - Variables provided to the script via HTTP POST. Analogous to the - old <varname>$HTTP_POST_VARS</varname> array (which is still - available, but deprecated). + ³q¹L HTTP POST ´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_POST_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -233,9 +159,7 @@ <term><link linkend="reserved.variables.cookies">$_COOKIE</link></term> <listitem> <simpara> - Variables provided to the script via HTTP cookies. Analogous to - the old <varname>$HTTP_COOKIE_VARS</varname> array (which is - still available, but deprecated). + ³q¹L HTTP cookies ´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_COOKIE_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -243,12 +167,7 @@ <term><link linkend="reserved.variables.files">$_FILES</link></term> <listitem> <simpara> - Variables provided to the script via HTTP post file - uploads. Analogous to the old - <varname>$HTTP_POST_FILES</varname> array (which is still - available, but deprecated). See <link - linkend="features.file-upload.post-method">POST method - uploads</link> for more information. + ³q¹L HTTP POST ÀɮפW¶Ç´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_POST_FILES</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C¸Ô±¡½Ð°Ñ¾\ <link linkend="features.file-upload.post-method">POST ¤W¶Ç¤è¦¡</link>¡C </simpara> </listitem> </varlistentry> @@ -256,9 +175,7 @@ <term><link linkend="reserved.variables.environment">$_ENV</link></term> <listitem> <simpara> - Variables provided to the script via the environment. Analogous - to the old <varname>$HTTP_ENV_VARS</varname> array (which is - still available, but deprecated). + °õ¦æÀô¹Ò´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_ENV_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -266,20 +183,11 @@ <term><link linkend="reserved.variables.request">$_REQUEST</link></term> <listitem> <simpara> - Variables provided to the script via any user input mechanism, - and which therefore cannot be trusted. The presence and order - of variable inclusion in this array is defined according to the <link - linkend="ini.variables-order">variables_order</link> - configuration directive. This array has no direct analogue in - versions of PHP prior to 4.1.0. See also - <function>import_request_variables</function>. + ³q¹L¥ô¦ó¨Ï¥ÎªÌ¿é¤J³~®|¦Ó´£¨Ñµ¹µ{¦¡ªºÅܼơA¤]¥¿¦]¦p¦¹¤£È±o«H¥ô¡C¦¹³¯¦C¤¤Åܼƪº¦s¦b»P§_¤Î¦¸§Ç¬O¨M©w©ó <link linkend="ini.variables-order">variables_order</link> ªº³]©w¡CPHP 4.1.0 ¤§«eªºª©¥»¨Ã¨S¦³Ãþ¦ü¦¹³¯¦CªºÅܼơC½Ð¦P®É°Ñ¾\ <function>import_request_variables</function>¡C </simpara> <note> <simpara> - When running on the <link linkend="features.commandline">command line - </link>, this will <emphasis>not</emphasis> include the - <varname>argv</varname> and <varname>argc</varname> entries; these are - present in the <varname>$_SERVER</varname> array. + ¦b<link linkend="features.commandline">«ü¥O¦æ</link>¼Ò¦¡¤U°õ¦æ®É¡A¥¦¨Ã<emphasis>¤£</emphasis>¥]§t <varname>argv</varname> ©M <varname>argc</varname> ¶µ¥Ø¡C¦¹¨â¶µ¥Ø¥u¦b <varname>$_SERVER</varname> ³¯¦C¤¤¥X²{¡C </simpara> </note> </listitem> @@ -288,12 +196,7 @@ <term><link linkend="reserved.variables.session">$_SESSION</link></term> <listitem> <simpara> - Variables which are currently registered to a script's - session. Analogous to the old - <varname>$HTTP_SESSION_VARS</varname> array (which is still - available, but deprecated). See the <link - linkend="ref.session">Session handling functions</link> section - for more information. + ¥Ø«e©Mµ{¦¡ª`¥U¤Fªº session ÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_SESSION_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C¸Ô±¡½Ð°Ñ¾\ <link linkend="ref.session">Session ³B²z¨ç¼Æ</link>¤@¸`¡C </simpara> </listitem> </varlistentry> @@ -303,13 +206,10 @@ <sect1 id="language.variables.scope"> - <title>Variable scope</title> + <title>Åܼƽd³ò</title> <simpara> - The scope of a variable is the context within which it is defined. - For the most part all PHP variables only have a single scope. - This single scope spans included and required files as well. For - example: + Åܼƪº½d³ò¥u¬O¦b¨ä©Ò©w¸qªºªÅ¶¡¤º¦s¦b¡C¦b¤j³¡¥÷ªº±¡ªp¤U¡APHP ªºÅܼƥu¦³¤@Ó³æ¤@ªº½d³ò¡C³o³æ¤@ªº½d³ò¤]¥]§t¤F¥H include ©M require ¤è¦¡¤Þ¤JªºÀɮסC¨Ò¦p¡G </simpara> <informalexample> <programlisting role="php"> @@ -322,11 +222,7 @@ </programlisting> </informalexample> <simpara> - Here the <varname>$a</varname> variable will be available within - the included <filename>b.inc</filename> script. However, within - user-defined functions a local function scope is introduced. Any - variable used inside a function is by default limited to the local - function scope. For example: + ¨Ò¤l¤¤¡AÅÜ¼Æ <varname>$a</varname> ¤]¦s¦b¤_³Q¥]§t¤Jªºµ{¦¡ <filename>b.inc</filename> ¤¤¡C¦ý¬O¦b¨Ï¥ÎªÌ¦Ûqªº¨ç¼Æ¤¤¡A¤@Ӱϰì©Êªº¨ç¼Æ½d³ò±N³Q¤Þ¥Î¡C¥ô¦ó¦b¨ç¼Æ¤º¨Ï¥ÎªºÅܼƦb¹w³]ªº±¡ªp¤U¥u§½©ó¸Ó¨ç¼Æªº½d³ò¤º¡C¨Ò¦p¡G </simpara> <informalexample> @@ -347,16 +243,7 @@ </informalexample> <simpara> - This script will not produce any output because the echo statement - refers to a local version of the <varname>$a</varname> variable, - and it has not been assigned a value within this scope. You may - notice that this is a little bit different from the C language in - that global variables in C are automatically available to - functions unless specifically overridden by a local definition. - This can cause some problems in that people may inadvertently - change a global variable. In PHP global variables must be - declared global inside a function if they are going to be used in - that function. An example: + ³oÓµ{¦¡¤£·|¿é¥X¥ô¦óªF¦è¡A¦]¬° echo z¥y¨Ï¥Î¤F¥»°Ï°ìª©¥»ªº <varname>$a</varname> ÅܼơA¦Ó¸Ó¥»°Ï°ìÅܼƨå¼´¿³Q¤À°t¤@ÓÈ¡C§A·|µo²{³o©M C »y¨¥ªº°µªk¤£¦P¡A¦]¬° C ªº¥þ°ìÅܼƬO¦Û°Êªº´£¨Ñµ¹¦U¨ç¼Æ¡A°£«D¦b¥»°ì©w¸q¤¤«ü©úºM¾P¡C¦¹°µªk¥i¯à·|¤ÞP¤@¨Ç°ÝÃD¡A¦p¨Ï¥ÎªÌ¤£·V¦a§ó§ï¤F¥þ°ìÅܼƪºÈ¡C¦b PHP ¤¤¡A¥þ°ìÅܼƦb¥»°ì¨Ï¥Î«e¥²¶·¥ý«Å§G¬°¥þ°ì¡C¨Ò¤l¡G </simpara> <informalexample> @@ -381,17 +268,11 @@ </informalexample> <simpara> - The above script will output "3". By declaring - <varname>$a</varname> and <varname>$b</varname> global within the - function, all references to either variable will refer to the - global version. There is no limit to the number of global - variables that can be manipulated by a function. + ¤Wz¨Ò¤l±N·|¿é¥X "3"¡C¦b¨ç¼Æ¤º«Å§G <varname>$a</varname> ¤Î <varname>$b</varname> ¬°¥þ°ì«á¡A©Ò¦³¯A¤Î¸Ó¨âÓÅܼƪº¨Ï¥Î±N¦Û°Ê«ü¦V¥þ°ìªºª©¥»¡CPHP ¨S¦³©w¤@Ó¨ç¼Æ¥i¥H¨Ï¥Îªº¥þ°ìÅܼƪº¼Æ¶q¡C </simpara> <simpara> - A second way to access variables from the global scope is to use - the special PHP-defined <varname>$GLOBALS</varname> array. The - previous example can be rewritten as: + ²Ä¤GºØ¦s¨ú¥þ°ì½d³ò¤¤ªºÅܼƤèªk¬O¨Ï¥Î¤@ PHP ¯S§O©w¸qªº³¯¦C¡G<varname>$GLOBALS</varname>¡C«e±ªº¨Ò¤l¥i¥H«¼g¬°¡G </simpara> <informalexample> @@ -414,13 +295,7 @@ </informalexample> <simpara> - The <varname>$GLOBALS</varname> array is an associative array with - the name of the global variable being the key and the contents of - that variable being the value of the array element. - Notice how <varname>$GLOBALS</varname> exists in any scope, this - is because $GLOBALS is a <link - linkend="language.variables.superglobals">superglobal</link>. - Here's an example demonstrating the power of superglobals: + <varname>$GLOBALS</varname> ¬O¤@ÓÃöÁp³¯¦C (associative array)¡A¥þ°ìÅܼƪº¦W§Y¬°¯Á¤ÞÁä¡A¦Ó¸ÓÅܼƪº¤º®e§Y¬°³¯¦CªºÈ¡C¦³§_¯d·N¨ì <varname>$GLOBALS</varname> ¦b¥ô¦ó¤@Ó½d³ò³£¥X²{¡H¨º¬O¦]¬° $GLOBALS ¬O¤@Ó<link linkend="language.variables.superglobals">superglobal</link>¡C³o¬O¤@ӥܽd superglobals ±j¤j¥\¯àªº¨Ò¤l¡G </simpara> <para> @@ -448,11 +323,7 @@ </para> <simpara> - Another important feature of variable scoping is the - <emphasis>static</emphasis> variable. A static variable exists - only in a local function scope, but it does not lose its value - when program execution leaves this scope. Consider the following - example: + Åܼƽd³òªº¥t¤@Ó«n¥\¯à¬°<emphasis>ÀRºA</emphasis>ÅܼơCÀRºAÅܼƥu¦b¥»°ì¨ç¼Æ½d³ò¤º¦s¦b¡A¦ý¬O·íµ{¦¡°õ¦æÂ÷¶}¦¹½d³ò®É¡A¥¦¨Ã¤£·|³à¥¢¥¦ªºÈ¡C¬Ý¬Ý¤U±ªº¨Ò¤l¡G </simpara> <informalexample> @@ -471,13 +342,7 @@ </informalexample> <simpara> - This function is quite useless since every time it is called it - sets <varname>$a</varname> to <literal>0</literal> and prints - "0". The <varname>$a</varname>++ which increments the - variable serves no purpose since as soon as the function exits the - <varname>$a</varname> variable disappears. To make a useful - counting function which will not lose track of the current count, - the <varname>$a</varname> variable is declared static: + ¦¹¨ç¼Æ¨S¦³¤°»ò¥Î³B¡A¦]¨C¤@¦¸°õ¦æ¥¦®É¡A¥¦±N <varname>$a</varname> ³]¬° <literal>0</literal> µM«á¦C¦L¥X "0"¡C<varname>$a</varname>++ ¼W¥[¤F <varname>$a</varname> ªºÈ¡A¦ý¨Ã¨S¦³¹ê»Ú¥Î³~¦]¬°¤@¥¹Â÷¶}¤F¸Ó¨ç¼Æ¡AÅÜ¼Æ <varname>$a</varname> ¤]ÀH¤§®ø¥¢¡Cn³]p¤@Ó¦³¥Îªº¡B¤£·|¥á¥¢·í«ep¼Æªºp¼Æ¨ç¼Æ¡A§ÚÌ¥i¥H±N <varname>$a</varname>«Å§G¬°ÀRºA¡G </simpara> <informalexample> @@ -496,18 +361,11 @@ </informalexample> <simpara> - Now, every time the Test() function is called it will print the - value of <varname>$a</varname> and increment it. + ²{¦b¡A¨C·í¨ç¼Æ Test() ³Q©I¥s®É¡A¥¦·|¦C¦L¥X <varname>$a</varname> ªºÈ¡AµM«á¥[¤W¤@¡C </simpara> <simpara> - Static variables also provide one way to deal with recursive - functions. A recursive function is one which calls itself. Care - must be taken when writing a recursive function because it is - possible to make it recurse indefinitely. You must make sure you - have an adequate way of terminating the recursion. The following - simple function recursively counts to 10, using the static - variable <varname>$count</varname> to know when to stop: + ÀRºAÅܼƤ]´£¨Ñ¤@ºØ³B²z»¼°j¨ç¼Æªº¤èªk¡C»¼°j¨ç¼Æ¬O¤@ºØ©I¥s¦Û¤vªº¨ç¼Æ¡C½s¼g»¼°j¨ç¼Æ®É¥²¶·¯d·N¡A¦]¬°Y½s¼g¿ù»~¡A¥¦¦³¥i¯à·|µL©w¦a»¼°j¡C±z¥²¶·½T©w¨¬°÷ªº¤è¦¡¨Ó²×¤î»¼°j¡C¤U¦C²³æªº¨ç¼Æ±N»¼°j¦a¼Æ¨ì 10¡A§Q¥ÎÀRºAÅÜ¼Æ <varname>$count</varname> ¨ÓÂ_©w¤°»ò®ÉÔ°±¤î¡G </simpara> <informalexample> @@ -531,12 +389,7 @@ </informalexample> <simpara> - The Zend Engine 1, driving <literal>PHP4</literal>, implements the - <literal>static</literal> and <literal>global</literal> modifier for - variables in terms of references. For example, a true global variable - imported inside a function scope with the <literal>global</literal> - statement actually creates a reference to the global variable. This can - lead to unexpected behaviour which the following example addresses: + ÅX°Ê <literal>PHP 4</literal> ªº Zend Engine 1 ¬O¥H°Ñ·Óªº¤è¦¡¨Ó¹ê²{ <literal>static</literal> ©M <literal>global</literal> ªº¡C¨Ò¦p¡A¤@Ó¯u¥¿ªº¥þ°ìÅܼƨϥΠ<literal>global</literal> ¤è¦¡¤Þ¶i¤@Ó¨ç¼Æ½d³ò®É¹ê»Ú¤W´N¬O«Ø¥ß¤F¤@Ó¥þ°ìÅܼƪº°Ñ·Ó¡C³o±N¾ÉP¤@¨Ç·N·Q¤£¨ìªº¦æ¬°¡A¥¿¦p¤U¦C¨Ò¤l©Òz¡G </simpara> <informalexample> @@ -563,7 +416,7 @@ </informalexample> <simpara> - Executing this example will result in the following output: + °õ¦æ³oÓ¨Ò¤l±N·|¾ÉP¤U¦Cªº¿é¥X¡G </simpara> <screen> @@ -573,8 +426,7 @@ </screen> <simpara> - A similar behaviour applies to the <literal>static</literal> statement. - References are not stored statically: + <literal>static</literal> ³¯z¦¡¤]·|¾ÉP¦P¼Ëªº¿é¥X¡C°Ñ·Ó¨Ã¨S¦³³QÀRºA¦aÀx¦s¡G </simpara> <informalexample> @@ -618,7 +470,7 @@ </informalexample> <simpara> - Executing this example will result in the following output: + °õ¦æ¦¹¨Ò¤l±N¾ÉP¤U¦Cªº¿é¥X¡G </simpara> <screen> @@ -633,21 +485,17 @@ </screen> <simpara> - This example demonstrates that when assigning a reference to a static - variable, it's not <emphasis>remembered</emphasis> when you call the - <literal>&get_instance_ref()</literal> function a second time. + ¤Wz¨Ò¤l¥Ü½d¤F¦b«ü¬£¤@Ó°Ñ·Óµ¹¤©¤@ÓÀRºAÅܼƫá¡A·í±z²Ä¤G¦¸©I¥s <literal>&get_instance_ref()</literal> ¨ç¼Æ®É¡A¥¦¬O<emphasis>¤£·|</emphasis>°O¦í¤§«eªºÈªº¡C </simpara> </sect1> <sect1 id="language.variables.variable"> - <title>Variable variables</title> + <title>¥iÅÜÅܼÆ</title> <simpara> - Sometimes it is convenient to be able to have variable variable - names. That is, a variable name which can be set and used - dynamically. A normal variable is set with a statement such as: + ¦³®ÉÔ¡A¥i¥H¨Ï¥Î¥iÅÜÅܼƷ|¥O¨ì¤u§@§ó¥[¤è«K¡C¤]´N¬O´N¡A¤@ÓÅܼƪº¦W¥i¥H³Q°ÊºAªº³]©w©M¨Ï¥Î¡C¤@Ó´¶³qªºÅܼƬO¥H¤U¦Cªº¤èªk³]©w¡G </simpara> <informalexample> @@ -661,10 +509,7 @@ </informalexample> <simpara> - A variable variable takes the value of a variable and treats that - as the name of a variable. In the above example, - <emphasis>hello</emphasis>, can be used as the name of a variable - by using two dollar signs. i.e. + ¤@Ó¥iÅÜÅܼƬO¥H¥t¤@ÓÅܼƪºÈ§@¬°¥¦ªºÅܼƦW¡C¦b¤Wz¨Ò¤l¤¤¡A¥un¥[¨âÓ $ ¦b <emphasis>hello</emphasis> ªº«e±´N¥i§â¥¦·í§@¬O¤@ÓÅܼƪº¦W¨Ó¨Ï¥Î¤F¡C§Y¡G </simpara> <informalexample> @@ -678,10 +523,7 @@ </informalexample> <simpara> - At this point two variables have been defined and stored in the - PHP symbol tree: <varname>$a</varname> with contents "hello" and - <varname>$hello</varname> with contents "world". Therefore, this - statement: + ³o®É¡A¦³¨âÓÅܼƳQ©w¸qµM«áÀx¦s¦b PHP ªº²Å¸¹ªí¤¤¡G§t¦³ "hello" ªº <varname>$a</varname> ¤Î§t¦³ "world" ªº <varname>$hello</varname>¡C©Ò¥H¡A¦¹±Ôz¡G </simpara> <informalexample> @@ -695,7 +537,7 @@ </informalexample> <simpara> - produces the exact same output as: + »P¤U¦C³o¥y¦³µÛ¦P¼Ëªº¿é¥X¡G </simpara> <informalexample> @@ -709,48 +551,34 @@ </informalexample> <simpara> - i.e. they both produce: <computeroutput>hello world</computeroutput>. + §Y¡A¥¦Ì³£¿é¥X¡G<computeroutput>hello world</computeroutput>¡C </simpara> <simpara> - In order to use variable variables with arrays, you have to - resolve an ambiguity problem. That is, if you write - <varname>$$a[1]</varname> then the parser needs to know if you - meant to use <varname>$a[1]</varname> as a variable, or if you - wanted <varname>$$a</varname> as the variable and then the [1] - index from that variable. The syntax for resolving this ambiguity - is: <varname>${$a[1]}</varname> for the first case and - <varname>${$a}[1]</varname> for the second. + ¬°¤Fn¦b³¯¦C¤¤¨Ï¥Î¥iÅÜÅܼơA±z¥²¶·º¥ý¸Ñ¨M¤@Ó¼Ò½kªº°ÝÃD¡C¤ñ¤è»¡¡A¦pªG±z¨Ï¥Î <varname>$$a[1]</varname>¡A¨ºåªR¾¹¥²¶·ª¾¹D±z¬O·Q·í <varname>$a[1]</varname> ¬OÅܼƨӨϥΡAÁÙ¬O·í <varname>$$a</varname> ¬OÅܼơAµM«á«ü¦V¨ºÓÅܼƪº²Ä [1] Ó¯Á¤Þ¡C¸Ñ¨M¤Wz¼Ò½k°ÝÃDªº»yªk¬O¡G²Ä¤@Ó±¡ªp¨Ï¥Î <varname>${$a[1]}</varname>¡B²Ä¤GÓ±¡ªp¨Ï¥Î <varname>${$a}[1]</varname>¡C </simpara> <warning> <simpara> - Please note that variable variables cannot be used with PHP's - <link linkend="language.variables.superglobals">Superglobal arrays</link>. - This means you cannot do things like <varname>${$_GET}</varname>. If you are - looking for a way to handle availability of superglobals and the old - <varname>HTTP_*_VARS</varname>, you might want to try - <link linkend="language.references">referencing</link> them. + ¥²¶·¯d·Nªº¬O¡A¥iÅÜÅܼƬO¤£¯à¨Ï¥Î©ó PHP ªº <link linkend="language.variables.superglobals">Superglobal ³¯¦C</link>¡C³oªí¥Ü±z¤£¯à¨Ï¥Î <varname>${$_GET}</varname> ³o¼Ëªº±Ôz¡C¦pªG±z¯uªº·Q¨Ï¥Î superglobals ©Mªº <varname>HTTP_*_VARS</varname>¡A±z¥i¥H¹Á¸Õ¥H<link linkend="language.references">°Ñ·Ó</link>ªº¤è¦¡¨Ï¥Î¡C </simpara> </warning> </sect1> <sect1 id="language.variables.external"> - <title>Variables from outside PHP</title> + <title>¨Ó¦Û PHP ¥H¥~ªºÅܼÆ</title> <sect2 id="language.variables.external.form"> - <title>HTML Forms (GET and POST)</title> + <title>HTML ªí³æ (GET ©MPOST)</title> <simpara> - When a form is submitted to a PHP script, the information from - that form is automatically made available to the script. There - are many ways to access this information, for example: + ·í¤@¥÷ªí³æ¶Ç°eµ¹ PHP µ{¦¡®É¡Aªí³æ¤ºªº¸ê°T±N¦Û°Ê´£¨Ñµ¹¸Óµ{¦¡¡C§Ú̦³«Ü¦h¤èªk¦s¨ú³o¨Ç¸ê°T¡A½d¨Ò¡G </simpara> <para> <example> - <title>A simple HTML form</title> + <title>¤@Ó²³æªº HTML ªí³æ</title> <programlisting role="html"> <![CDATA[ <form action="foo.php" method="post"> @@ -764,13 +592,12 @@ </para> <para> - Depending on your particular setup and personal preferences, there - are many ways to access data from your HTML forms. Some examples are: + ®Ú¾Ú±zªº¦w¸Ë¤è¦¡©MÓ¤H°¾¦n¡APHP ´£¨Ñ¦hºØ¤è¦¡¦s¨ú HTML ªí³æ¤¤ªº¸ê®Æ¡C¤@¨Ç¨Ò¤l¦p¡G </para> <para> <example> - <title>Accessing data from a simple POST HTML form</title> + <title>¦s¨ú¤@Ó¥H POST ¤è¦¡¶Ç°eªºÂ²³æ HTML ªí³æ</title> <programlisting role="html"> <![CDATA[ <?php @@ -782,7 +609,7 @@ import_request_variables('p', 'p_'); print $p_username; -// Available since PHP 3. As of PHP 5.0.0, these long predefined +// Available since PHP 3. As of PHP 5.0.0, these long predefined // variables can be disabled with the register_long_arrays directive. print $HTTP_POST_VARS['username']; @@ -798,55 +625,33 @@ </example> </para> <para> - Using a GET form is similar except you'll use the appropriate - GET predefined variable instead. GET also applies to the - QUERY_STRING (the information after the '?' in an URL). So, - for example, <literal>http://www.example.com/test.php?id=3</literal> - contains GET data which is accessible with <varname>$_GET['id']</varname>. - See also <link linkend="reserved.variables.request">$_REQUEST</link> and - <function>import_request_variables</function>. + ¨Ï¥Î GET ¤è¦¡¶Ç°eªºªí³æ¥ÎªkÃþ¦ü¡A¥u¤£¹L¨Ï¥Î¦X¾Aªº¥ý«e©w¸qªº¨ç¼Æ¡CGET ¤]¥i¨Ï¥Î¦b¬d¸ß¦r¦ê (QUERY_STRING) ¡qURL ¤¤°Ý¸¹ '?' «á±ªº¸ê°T¡r¡C¨Ò¦p¡A<literal>http://www.example.com/test.php?id=3</literal> §t¦³¥H <varname>$_GET['id']</varname> ¤è¦¡¦s¨úªº GET ¸ê®Æ¡C½Ð°Ñ¦Ò <link linkend="reserved.variables.request">$_REQUEST</link> ©M <function>import_request_variables()</function>¡C </para> <note> <para> - <link linkend="language.variables.superglobals">Superglobal arrays</link>, - like <varname>$_POST</varname> and <varname>$_GET</varname>, became - available in PHP 4.1.0 + <link linkend="language.variables.superglobals">Superglobal ³¯¦C</link>¦p <varname>$_POST</varname> ¤Î <varname>$_GET</varname> ¦b PHP ª©¥» 4.1.0 ¥H¤W¤~¶}©l´£¨Ñ¡C </para> </note> <para> - As shown, before PHP 4.2.0 the default value for <link - linkend="ini.register-globals">register_globals</link> - was <emphasis>on</emphasis>. And, in PHP 3 it was always on. The PHP - community is encouraging all to not rely on this directive - as it's preferred to assume it's <emphasis>off</emphasis> and code - accordingly. + ¤W±´£¨ì¡A¦b PHP 4.2.0 ¤§«eªºª©¥»¤¤¡A<link linkend="ini.register-globals">register_globals</link> ªº¹w³]ȬO <emphasis>on</emphasis>¡C¦Ó¦b PHP 3 ¤¤¡A¥¦¥Ã»·¬O on ªº¡C§ÚÌ«ØÄ³©Ò¦³¨Ï¥ÎªÌ¤£n¨Ì¿à¦¹«ü¥O¡A¨Ã¦b½s¼g®É±N¥¦·í§@¬O <emphasis>off</emphasis> ¨Ó³]p±zªºµ{¦¡¡C </para> <note> <para> - The <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> - configuration directive affects Get, Post and Cookie values. If - turned on, value (It's "PHP!") will automagically become (It\'s \"PHP!\"). - Escaping is needed for DB insertion. See also - <function>addslashes</function>, <function>stripslashes</function> and - <link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>. + <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> ²ÕºA«ü¥O·|¼vÅT¨ì Get¡APost ©M Cookie ªºÈ¡C¦pªG¶}±Ò¦¹«ü¥O¡A(It's "PHP!") ªºÈ±NÅܦ¨ (It\'s \"PHP!\")¡C¦¹¸õ¥X¤u§@¦b±N¦r¦ê´¡¤J¸ê®Æ®w«e¬O¥²¶·n°µªº¡C½Ð°Ñ¦Ò <function>addslashes</function>¡A<function>stripslashes</function> ©M <link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>¡C </para> </note> <simpara> - PHP also understands arrays in the context of form variables - (see the <link linkend="faq.html">related faq</link>). You may, - for example, group related variables together, or use this - feature to retrieve values from a multiple select input. For - example, let's post a form to itself and upon submission display - the data: + PHP ¤]À´±o³B²z³¯¦C¦¡ªºªí³æÅܼơq½Ð°ÑÆ[¬ÛÃöªº <link linkend="faq.html">FAQ</link>¡r¡C±z¥i¥H±N¬ÛÃöªºÅܼÆÂkÃþ¡A©Î¥Î¦¹¥\¯à¨Ó¨ú¦^¦h¤¸¿ï¾Ü¿é¤Jªí³æªºÈ¡C¦b¤U¦C½d¨Ò¤¤¡A§Ú̱Nªí³æ±i¶K¨ì¥¦¦Û¤v¡A¨Ã¦b¶Ç°e«á§â¸ê®ÆÅã¥Ü¥X¨Ó¡G + </simpara> <para> <example> - <title>More complex form variables</title> + <title>§ó½ÆÂøªºªí³æÅܼÆ</title> <programlisting role="php"> <![CDATA[ <?php @@ -880,16 +685,14 @@ </para> <para> - In PHP 3, the array form variable usage is limited to - single-dimensional arrays. In PHP 4, no such restriction applies. + PHP 3 ªº³¯¦Cªí³æÅܼƥu¥i¥H¨Ï¥Î¤@ºû³¯¦C¡A¦Ó PHP 4 «h¨S¦³¦¹¨î¡C </para> <sect3 id="language.variables.external.form.submit"> - <title>IMAGE SUBMIT variable names</title> + <title>IMAGE SUBMIT ÅܼƦWºÙ</title> <simpara> - When submitting a form, it is possible to use an image instead - of the standard submit button with a tag like: + ¦b¶Ç°eªí³æ®É¡A§ÚÌ¥i¥H¨Ï¥Î¤U¦C¼ÐÅÒ±N¼Ð·Çªº´£¥æÁä¥H¹Ï¹³¨Ó¨ú¥N¡G </simpara> <informalexample> @@ -901,13 +704,7 @@ </informalexample> <simpara> - When the user clicks somewhere on the image, the accompanying - form will be transmitted to the server with two additional - variables, sub_x and sub_y. These contain the coordinates of the - user click within the image. The experienced may note that the - actual variable names sent by the browser contains a period - rather than an underscore, but PHP converts the period to an - underscore automatically. + ·í¨Ï¥ÎªÌ¦b¹Ï¹³ªº¥ô¦ó¤@³B«ö¤@¤U¡A¦ñÀHªºªí³æ´N·|¶Ç°e¨ì¦øªA¾¹¡AÀH¨ä¦Ó¨ÓÁÙªþ¥[¤F¨âÓÅܼơAsub_x ©M sub_y¡C³o¥]§t¤F¨Ï¥ÎªÌ«ö¦b¹Ï¹³ªº®y¼Ð¡C¦³¸gÅ窺¨Ï¥ÎªÌ©Î³\ª¾¹D¥ÑÂsÄý¾¹¶Ç°e¨ÓªºÅܼƦWºÙÀ³¸Ó¥]§t¥y¸¹¡A¦Ó¤£¬O©³½u¡A¦ý PHP ¦Û°Ê¦a±N¥y¸¹Âà´«¦¨¬°©³½u¡C </simpara> </sect3> @@ -917,24 +714,12 @@ <title>HTTP Cookies</title> <simpara> - PHP transparently supports HTTP cookies as defined by <ulink - url="&spec.cookies;">Netscape's Spec</ulink>. Cookies are a - mechanism for storing data in the remote browser and thus - tracking or identifying return users. You can set cookies using - the <function>setcookie</function> function. Cookies are part of - the HTTP header, so the SetCookie function must be called before - any output is sent to the browser. This is the same restriction - as for the <function>header</function> function. Cookie data - is then available in the appropriate cookie data arrays, such - as <varname>$_COOKIE</varname>, <varname>$HTTP_COOKIE_VARS</varname> - as well as in <varname>$_REQUEST</varname>. See the - <function>setcookie</function> manual page for more details and - examples. + PHP µ´¹ï¤ä´© <ulink + url="&spec.cookies;">Netscape³W®æ</ulink>ªº HTTP cookies¡CCookies ¬O¥Î¨Ó±N¸ê®ÆÀx¦s¦b¥Î¤áºÝªºÂsÄý¾¹¤¤¡A¥H«K¤é«á°lÂÜ©ÎÃѧOªð¦^ªº¨Ï¥ÎªÌ¡C±z¥i¥H¥Î <function>setcookie()</function> ¨ç¼Æ¨Ó³]©w cookies¡CCookies ¬O HTTP header ªº¤@³¡¥÷¡A¦]¦¹ SetCookie ¨ç¼Æ¤@©wn¦b¥ô¦ó¸ê®Æ¶Ç°e¥hÂsÄý¾¹«e©I¥s¡C³o©M <function>header()</function> ¨ç¼Æ¦³µÛ¬Û¦Pªº©w¡CCookie ¸ê®Æ¥i¥H¦b <varname>$_COOKIE</varname>¡A<varname>$HTTP_COOKIE_VARS</varname> ¤Î <varname>$_REQUEST</varname> ³¯¦C¤¤¨Ñ¨Ï¥Î¡C¸Ô±¡©M½d¨Ò½Ð°Ñ¦Ò¤â¥Uªº <function>setcookie()</function> ³¡¥÷¡C </simpara> <simpara> - If you wish to assign multiple values to a single cookie variable, you - may assign it as an array. For example: + Y±zn±N¦hÓÈ«ü¬£µ¹¤@Ó cookie ÅܼơA¨º±z´Nn¨Ï¥Î³¯¦C¨Ó«ü¬£¤F¡C½d¨Ò¡G </simpara> <informalexample> @@ -949,21 +734,15 @@ </informalexample> <simpara> - That will create two seperate cookies although MyCookie will now - be a single array in your script. If you want to set just one cookie - with multiple values, consider using <function>serialize</function> or - <function>explode</function> on the value first. + ³o±N·|«Ø¥ß¨âÓÓ§Oªº cookies¡A¾¨ºÞ²{¦b MyCookie¦b±zªºµ{¦¡¤¤¬O¤@ӳ椸³¯¦C¡C¦pªG±zn¥H¤@Ó cookie «Ø¥ß¦hÓÈ¡A¨º±z¥i¥ý¹ï¨º¨ÇȨϥΠ<function>serialize()</function> ©Î <function>explode()</function> ¨ç¼Æ¡C </simpara> <simpara> - Note that a cookie will replace a previous cookie by the same - name in your browser unless the path or domain is different. So, - for a shopping cart application you may want to keep a counter - and pass this along. i.e. + ¦³¤@ÂI¥²¶·¯d·Nªº¬O¡A¤@Ó cookie ±N·|´À¥NÂsÄý¾¹¤¤¥t¤@Ó¦P¦Wªº cookie¡A°£«D¸Ó cookie ªº¸ô®|©Îºô°ì¦WºÙ¤£¦P¡C©Ò¥H¡A¦b³]pÁʪ«¨®µ{¦¡®É¡A±z³Ì¦n«O«ù¤@Óp¼Æ¾¹¡A¨Ã±N¦¹¼Æ¾Ú¶Ç»¼¤U¥h¡A§Y¡G </simpara> <example> - <title>A <function>setcookie</function> example</title> + <title>¤@Ó <function>setcookie()</function> ªº½d¨Ò</title> <programlisting role="php"> <![CDATA[ <?php @@ -978,13 +757,11 @@ </sect2> <sect2 id="language.variables.external.dot-in-names"> - <title>Dots in incoming variable names</title> + <title>¦bÅܼƦW¦r¤¤ªº¥y¸¹ (dots)</title> <para> - Typically, PHP does not alter the names of variables when they - are passed into a script. However, it should be noted that the - dot (period, full stop) is not a valid character in a PHP - variable name. For the reason, look at it: + ¤@¯ë¤W¡APHP ¨Ã¤£·|§ó§ï¶Ç¤Jµ{¦¡ªºÅܼƦWºÙ¡CµM¦Ó¡A±z¥²¶·¯d·N¥y¸¹ (.) ¨Ã¤£¬O¤@Ó¦³®Äªº PHP ÅܼƦWºÙ¦r¤¸¡A¥¿¦p¡G + <programlisting role="php"> <![CDATA[ <?php @@ -992,34 +769,20 @@ ?> ]]> </programlisting> - Now, what the parser sees is a variable named - <varname>$varname</varname>, followed by the string concatenation - operator, followed by the barestring (i.e. unquoted string which - doesn't match any known key or reserved words) 'ext'. Obviously, - this doesn't have the intended result. + ³o®É¡AåªR¾¹¨£¨ìªº¥u¬O¤@Ó¥s°µ <varname>$varname</varname> ªºÅܼơA¸òÀHµÛ¦r¦ê³sµ²¹Bºâ¤l (.)¡A¦A¨Ó¬O¤@ÓµL¤Þ¸¹ªº¦r¦ê¡Gext¡CÅãµM¦a¡A³o¨Ã¤£·|±a¨Ó±z·Qnªºµ²ªG¡C </para> <para> - For this reason, it is important to note that PHP will - automatically replace any dots in incoming variable names with - underscores. + ¥¿¦]¦p¦¹¡APHP ·|¦Û°Êªº±N¶Ç¤JªºÅܼƦWºÙ¤¤ªº¥y¸¹ (.) §ï¬°©³½u (_)¡C </para> </sect2> <sect2 id="language.variables.determining-type-of"> - <title>Determining variable types</title> + <title>§P©wÅܼƪºÃþ«¬</title> <para> - Because PHP determines the types of variables and converts them - (generally) as needed, it is not always obvious what type a given - variable is at any one time. PHP includes several functions - which find out what type a variable is, such as: - <function>gettype</function>, <function>is_array</function>, - <function>is_float</function>, <function>is_int</function>, - <function>is_object</function>, and - <function>is_string</function>. See also the chapter on - <link linkend="language.types">Types</link>. + ¥Ñ©ó PHP ·|¦Û¦æ§PÂ_ÅܼƪºÃþ«¬¡A¨Ã«ö»ÝnÂàÅÜ¥¦ÌªºÃþ«¬¡A¦]¦¹¦³®É¤]Ãø¥H©úÅã¦a§P©w¤@ÓÅܼƦb¬YӮɨ誺Ãþ«¬¡C¦³Å²©ó¦¹¡APHP ´£¨Ñ¤F´XÓ§P©wÅܼÆÃþ«¬ªº¨ç¼Æ¡G<function>gettype()</function>¡B<function>is_array()</function>¡B<function>is_float()</function>¡B<function>is_int()</function>¡B<function>is_object()</function> ¤Î <function>is_string()</function>¡C½Ð°Ñ¾\<link linkend="language.types">Ãþ«¬</link>¤@³¹¡C </para> </sect2> @@ -1046,4 +809,4 @@ vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 ---> +--> \ No newline at end of file
Index: phpdoc/en/language/variables.xml diff -u phpdoc/en/language/variables.xml:1.59 phpdoc/en/language/variables.xml:1.60 --- phpdoc/en/language/variables.xml:1.59 Fri Jun 6 01:33:09 2003 +++ phpdoc/en/language/variables.xml Sat Jun 7 13:27:52 2003 @@ -1,28 +1,22 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.59 $ --> +<?xml version="1.0" encoding="big5"?> +<!-- $Revision: 1.60 $ --> <chapter id="language.variables"> - <title>Variables</title> + <title>¦UÃþÅܼÆ</title> <sect1 id="language.variables.basics"> - <title>Basics</title> + <title>°ò¥»ª¾ÃÑ</title> <simpara> - Variables in PHP are represented by a dollar sign followed by the - name of the variable. The variable name is case-sensitive. + ©Ò¦³ PHP ªºÅܼƳ£¬O¥H "$" ¬°¶}ºÝ¡A«á¥[ÅܼƦW©Ò²Õ¦¨ªº¡CÅܼƦWºÙ¬O¦³¤j¤p¼g¤§¤Àªº¡C </simpara> <para> - Variable names follow the same rules as other labels in PHP. A - valid variable name starts with a letter or underscore, followed - by any number of letters, numbers, or underscores. As a regular - expression, it would be expressed thus: - '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' + PHP ªºÅܼƦWºÙ©M¨ä¥L¼ÐÅÒ¦³µÛ¬Û¦Pªº³W«h¡C¤@Ó¦³®ÄªºÅܼƬO¥Ñ^¤å¦r¥À©Î©³½u¶}©l¡A¸òµÛ¬O¥ô·Nªøµuªº¦r¥À¡B¼Æ¦r©Î©³½u¡C«ö¥¿³W¹Bºâ¦¡¡A¥¦¥i¥Hªí¹F¬°¡G'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' </para> <note> <simpara> - For our purposes here, a letter is a-z, A-Z, and the ASCII - characters from 127 through 255 (0x7f-0xff). + ¦r¥À¬° a-z¡AA-Z¡A¦Ó ASCII ¦r²Å«h±q 127 ¦Ü 255¡q0x7f-0xff¡r¡C </simpara> </note> @@ -45,33 +39,14 @@ </para> <para> - In PHP 3, variables are always assigned by value. That is to say, - when you assign an expression to a variable, the entire value of - the original expression is copied into the destination - variable. This means, for instance, that after assigning one - variable's value to another, changing one of those variables will - have no effect on the other. For more information on this kind of - assignment, see the chapter on <link - linkend="language.expressions">Expressions</link>. + PHP 3 ¤¤¡AÅܼÆÁ`¬O¥ÑÈ«ü¬£¡C¤]´N¬O»¡¡A·í±z±N¤@Ó¹Bºâ¦¡ªºÈ«ü¬£µ¹¤@ÓÅܼƮɡA¾ãÓì©l¹Bºâ¦¡ªºÈ±N·|½Æ»s¨ì¥ØªºÅܼơC¨Ò¦p¡A·í±N¤@ÓÅܼƪºÈ«ü¬£µ¹¥t¤@ÓÅܼƤ§«á¡A§ó§ï·í¤¤ªº¥ô¦ó¤@ÓÅܼƪºÈ¨Ã¤£·|¼vÅT¨ì¥t¤@ÓÅܼƪºÈ¡C·Qnª¾¹D§ó¦h³oÃþªº«ü¬£¡A½Ð°Ñ¾\<link linkend="language.expressions">¹Bºâ¦¡</link>³o¤@³¹¡C </para> <para> - PHP 4 offers another way to assign values to variables: - <link linkend="language.references">assign by reference</link>. - This means that the new variable simply references (in other words, - "becomes an alias for" or "points to") the original variable. - Changes to the new variable affect the original, and vice versa. - This also means that no copying is performed; thus, the assignment - happens more quickly. However, any speedup will likely be noticed - only in tight loops or when assigning large - <link linkend="language.types.array">arrays</link> or - <link linkend="language.types.object">objects</link>. + PHP 4 «h´£¨Ñ¤F¥t¤@ºØ«ü¬£ÅܼÆÈªº¤èªk¡G<link linkend="language.references">¶Ç§}«ü¬£</link>¡A§Y·sÅܼƥu¬O°Ñ·Óì¨ÓÅܼƤ¤ªºÈ¡A©Î»¡·sªºÅܼƦ¨¬°ì¨ÓÅܼƪº§O¦W¡C¦¹®É¡A§ó§ï¨âÓÅܼƤ¤¥ô¦ó¤@ÓªºÈ³£·|¦P®É§ó§ï¥t¤@ÓªºÈ¡C¥Ñ©ó¨S¦³°õ¦æ¹ê»Úªº½Æ»s¤u§@¡A«ü¬£ªº¾Þ§@¤]¦]¦¹§ó¥[§Ö±¶¡C¤£¹L¡A¥u¦³¦bºò±Kªº°j°é©Î«ü¬£¤j¶qªº<link linkend="language.types.array">°}¦C</link>©Î<link linkend="language.types.object">ª«¥ó</link>®É¤~·|¹îı³t«×ªº´£¤É¡C </para> <para> - To assign by reference, simply prepend an ampersand (&) to the - beginning of the variable which is being assigned (the source - variable). For instance, the following code snippet outputs 'My - name is Bob' twice: - + ¨Ï¥Î¶Ç§}«ü¬£¡A¥u¶·¦b³Q°Ñ·ÓªºìÅܼƫe¥[¤W¤@Ó (&) ªº²Å¸¹¡C¨Ò¦p¡A¤U¦Cµ{¦¡½X¦b¨Ï¥Î¶Ç§}«ü¬£«á¿é¥X 'My name is Bob' ¨â¦¸¡C + <informalexample> <programlisting role="php"> <![CDATA[ @@ -88,8 +63,7 @@ </para> <para> - One important thing to note is that only named variables may be - assigned by reference. + »Ýnª`·Nªº¬O¥u¦³¯u¥¿©R¦WªºÅܼƤ~¥i¥H¥Î¨Ó¶i¦æ¶Ç§}«ü¬£¡C <informalexample> <programlisting role="php"> <![CDATA[ @@ -112,89 +86,48 @@ </sect1> <sect1 id="language.variables.predefined"> - <title>Predefined variables</title> + <title>¹w³]ªºÅܼÆ</title> <simpara> - PHP provides a large number of predefined variables to any script - which it runs. Many of these variables, however, cannot be fully - documented as they are dependent upon which server is running, the - version and setup of the server, and other factors. Some of these - variables will not be available when PHP is run on the - <link linkend="features.commandline">command line</link>. - For a listing of these variables, please see the section on - <link linkend="reserved.variables">Reserved Predefined Variables</link>. + PHP ¬°¥¦°õ¦æªºµ{¦¡´£¨Ñ¤F¤j¶qªº¹w³]ÅܼơCµM¦Ó¡A¥Ñ¤_¦³³\¦hÅܼƦ]¨Ì¿à¨ä©Ò°õ¦æªº¦øªA¾¹ºØÃþ¡Bª©¥»¡B¦w¸Ëµ¥±¡ªp¦Ó©w¡A¦]¦¹Ãø¥H¦³§¹¾ãªº³Q°O¸ü¤U¨Ó¡C§ó¦³¤@¨ÇÅܼƦb<link linkend="features.commandline">«ü¥O¦æ</link>ªº¼Ò¦¡¹B¦æ®É¬O¤£¯à¨Ï¥Îªº¡C¦³Ãö³o¨ÇÅܼƪº¦Cªí¡A½Ð°Ñ¦Ò<link linkend="reserved.variables">«O¯dªº¥ý«e©w¸qÅܼÆ</link>¤@¸`¡C </simpara> <warning> <simpara> - In PHP 4.2.0 and later, the default value for the PHP directive <link - linkend="ini.register-globals">register_globals</link> is - <emphasis>off</emphasis>. This is a major change in PHP. Having - register_globals <emphasis>off</emphasis> affects the set of predefined - variables available in the global scope. For example, to get - <varname>DOCUMENT_ROOT</varname> you'll use - <varname>$_SERVER['DOCUMENT_ROOT']</varname> instead of - <varname>$DOCUMENT_ROOT</varname>, or <varname>$_GET['id']</varname> from - the URL <literal>http://www.example.com/test.php?id=3</literal> instead - of <varname>$id</varname>, or <varname>$_ENV['HOME']</varname> instead of - <varname>$HOME</varname>. + PHP 4.2.0 ¥H«áªºª©¥»¡A<link linkend="ini.register-globals">register_globals</link> «ü¥Oªº¹w³]ȬO <emphasis>off</emphasis>¡C³o¬O¤@Ó«¤jªº§ïÅÜ¡C±N register_globals ªºÈ¹w³]¬° <emphasis>off</emphasis> ·|¼vÅT¨ì¹w³]ÅܼƦb¥þ°ì½d³ò¤ºªº¦³®Ä©Ê¡C¨Ò¦p¡An±o¨ì <varname>DOCUMENT_ROOT</varname> ªºÈ¡AÀ³¨Ï¥Î <varname>$_SERVER['DOCUMENT_ROOT']</varname> ¦Ó¤£¬O <varname>$DOCUMENT_ROOT</varname>¡B¨Ï¥Î <varname>$_GET['id']</varname> ¥H¨ú±o URL <literal>http://www.example.com/test.php?id=3</literal> ¤¤ id ªºÈ¡A¦Ó¤£¬O¥Î <varname>$id</varname>¡B©Î¨Ï¥Î <varname>$_ENV['HOME']</varname> ¨Ó¨ú¥N <varname>$HOME</varname>¡C </simpara> <simpara> - For related information on this change, read the configuration entry for - <link linkend="ini.register-globals">register_globals</link>, the security - chapter on <link linkend="security.registerglobals">Using Register Globals - </link>, as well as the PHP <ulink url="&url.php.release4.1.0;">4.1.0 - </ulink> and <ulink url="&url.php.release4.2.0;">4.2.0</ulink> Release - Announcements. + §ó¦h»P¦¹§ó§ï¬ÛÃöªº¸ê®Æ¥i¦b <link linkend="ini.register-globals">register_globals</link> ªº³]¸m¤@¸`¡B<link linkend="security.registerglobals">¨Ï¥Î Register Globals</link> ¤¤ªº¦w¥þ³¹¡A©Î¦b <ulink url="&url.php.release4.1.0;">4.1.0</ulink> ¤Î <ulink url="&url.php.release4.2.0;">4.2.0</ulink> ªºµo¦æ³q§i¤¤¨ú±o¡C </simpara> <simpara> - Using the available PHP Reserved Predefined Variables, like the - <link linkend="language.variables.superglobals">superglobal arrays</link>, - is preferred. + §ÚÌ«ØÄ³±z¨Ï¥Î PHP ´£¨Ñªº«O¯d¹w³]ÅܼơA¦p <link linkend="language.variables.superglobals">superglobal ³¯¦C</link>¡C </simpara> </warning> <simpara> - From version 4.1.0 onward, PHP provides an additional set of predefined arrays - containing variables from the web server (if applicable), the - environment, and user input. These new arrays are rather special - in that they are automatically global--i.e., automatically - available in every scope. For this reason, they are often known as - 'autoglobals' or 'superglobals'. (There is no mechanism in PHP for - user-defined superglobals.) The superglobals are listed below; - however, for a listing of their contents and further discussion on - PHP predefined variables and their natures, please see the section - <link linkend="reserved.variables">Reserved Predefined Variables</link>. - Also, you'll notice how the older predefined variables - (<varname>$HTTP_*_VARS</varname>) still exist. - + ¦Û 4.1.0 ª©¥»°_¡APHP ÃB¥~´£¨Ñ¤F¤@®M¹w³]°}¦C¡A·í¤¤¥]§t¤F¨Ó¦Û¦øªA¾¹¡q¦p¾A¥Î¡r¡BÀô¹Ò¡B¤Î¨Ï¥ÎªÌ¿é¤JªºÅܼơC³o¨Ç·s³¯¦C¤ñ¸û¯S§O¡A¦]¦¹¥¦Ì·|¦Û°Ê¦a³]¬°¥þ°ì¡A§Y¥i¥H¦b©Ò¦³½d³ò¤º¨Ï¥Î¡C¥¿¦]¦p¦¹¡A¥¦Ì¤]³QºÙ¬° 'autoglobals' ©Î 'superglobals'¡C¡qPHP ©|¥¼¦³¨Ï¥ÎªÌ¦Û¦æ©w¸q superglobals ªº¥\¯à¡C¡r§Ú̱N¦b¤U±¦C¥X superglobals¡A¦ýnª¾¹D¥¦Ìªº¤º®e©M PHP ¹w³]Åܼƪº²`¤J°Q½×¡A½Ð°Ñ¦Ò<link linkend="reserved.variables">«O¯dªº¥ý«e©w¸qÅܼÆ</link>¤@¸`¡C¦¹¥~¡A±z¤]·|¯d·N¦³ªº¹w³]ÅÜ¼Æ (<varname>$HTTP_*_VARS</varname>) ¤´µM¦s¦b¡C + &avail.register-long-arrays; </simpara> <note> - <title>Variable variables</title> + <title>¥iÅÜÅܼÆ</title> <para> - Superglobals cannot be used as - <link linkend="language.variables.variable">variable variables</link>. + Superglobals ¤£¯à·í§@<link linkend="language.variables.variable">¥iÅÜÅܼÆ</link>¨Ó¨Ï¥Î¡C </para> </note> <para> - If certain variables in <link - linkend="ini.variables-order">variables_order</link> are not set, their - appropriate PHP predefined arrays are also left empty. + ¦pªG¬Y¨Ç <link linkend="ini.variables-order">variables_order</link> ¤¤ªºÅܼƨS¦³³Q³]©w¡A¥¦Ì¬Û¹ïªº PHP ¹w³]³¯¦C¤]±N·|¬OªÅªº¡C </para> <variablelist id="language.variables.superglobals"> - <title>PHP Superglobals</title> + <title>PHP ªº Superglobals</title> <varlistentry> <term><link linkend="reserved.variables.globals">$GLOBALS</link></term> <listitem> <simpara> - Contains a reference to every variable which is currently - available within the global scope of the script. The keys of - this array are the names of the global variables. - <varname>$GLOBALS</varname> has existed since PHP 3. + ¥]§t¤@Ó«ü¦Vµ{¦¡¥þ°ì½d³ò¤º¥i¥ÎÅܼƪº¯Á¤Þ¡C¦¹³¯¦Cªº¯Á¤ÞÁ䬰¥þ°ìÅܼƪº¦WºÙ¡C<varname>$GLOBALS</varname> ¦Û PHP 3 ¶}©l´N¤w¦s¦b¡C </simpara> </listitem> </varlistentry> @@ -202,10 +135,7 @@ <term><link linkend="reserved.variables.server">$_SERVER</link></term> <listitem> <simpara> - Variables set by the web server or otherwise directly related - to the execution environment of the current script. Analogous - to the old <varname>$HTTP_SERVER_VARS</varname> array (which is - still available, but deprecated). + ¥Ñºô¶¦øªA¾¹³]©wªºÅܼƩΥثeªºµ{¦¡©Ò°õ¦æªºÀô¹Ò²£¥ÍªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_SERVER_VARS</varname> ³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -213,9 +143,7 @@ <term><link linkend="reserved.variables.get">$_GET</link></term> <listitem> <simpara> - Variables provided to the script via HTTP GET. Analogous to the - old <varname>$HTTP_GET_VARS</varname> array (which is still - available, but deprecated). + ³q¹L HTTP GET ´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_GET_VARS</varname> ³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -223,9 +151,7 @@ <term><link linkend="reserved.variables.post">$_POST</link></term> <listitem> <simpara> - Variables provided to the script via HTTP POST. Analogous to the - old <varname>$HTTP_POST_VARS</varname> array (which is still - available, but deprecated). + ³q¹L HTTP POST ´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_POST_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -233,9 +159,7 @@ <term><link linkend="reserved.variables.cookies">$_COOKIE</link></term> <listitem> <simpara> - Variables provided to the script via HTTP cookies. Analogous to - the old <varname>$HTTP_COOKIE_VARS</varname> array (which is - still available, but deprecated). + ³q¹L HTTP cookies ´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_COOKIE_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -243,12 +167,7 @@ <term><link linkend="reserved.variables.files">$_FILES</link></term> <listitem> <simpara> - Variables provided to the script via HTTP post file - uploads. Analogous to the old - <varname>$HTTP_POST_FILES</varname> array (which is still - available, but deprecated). See <link - linkend="features.file-upload.post-method">POST method - uploads</link> for more information. + ³q¹L HTTP POST ÀɮפW¶Ç´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_POST_FILES</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C¸Ô±¡½Ð°Ñ¾\ <link linkend="features.file-upload.post-method">POST ¤W¶Ç¤è¦¡</link>¡C </simpara> </listitem> </varlistentry> @@ -256,9 +175,7 @@ <term><link linkend="reserved.variables.environment">$_ENV</link></term> <listitem> <simpara> - Variables provided to the script via the environment. Analogous - to the old <varname>$HTTP_ENV_VARS</varname> array (which is - still available, but deprecated). + °õ¦æÀô¹Ò´£¨Ñµ¹µ{¦¡ªºÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_ENV_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C </simpara> </listitem> </varlistentry> @@ -266,20 +183,11 @@ <term><link linkend="reserved.variables.request">$_REQUEST</link></term> <listitem> <simpara> - Variables provided to the script via any user input mechanism, - and which therefore cannot be trusted. The presence and order - of variable inclusion in this array is defined according to the <link - linkend="ini.variables-order">variables_order</link> - configuration directive. This array has no direct analogue in - versions of PHP prior to 4.1.0. See also - <function>import_request_variables</function>. + ³q¹L¥ô¦ó¨Ï¥ÎªÌ¿é¤J³~®|¦Ó´£¨Ñµ¹µ{¦¡ªºÅܼơA¤]¥¿¦]¦p¦¹¤£È±o«H¥ô¡C¦¹³¯¦C¤¤Åܼƪº¦s¦b»P§_¤Î¦¸§Ç¬O¨M©w©ó <link linkend="ini.variables-order">variables_order</link> ªº³]©w¡CPHP 4.1.0 ¤§«eªºª©¥»¨Ã¨S¦³Ãþ¦ü¦¹³¯¦CªºÅܼơC½Ð¦P®É°Ñ¾\ <function>import_request_variables</function>¡C </simpara> <note> <simpara> - When running on the <link linkend="features.commandline">command line - </link>, this will <emphasis>not</emphasis> include the - <varname>argv</varname> and <varname>argc</varname> entries; these are - present in the <varname>$_SERVER</varname> array. + ¦b<link linkend="features.commandline">«ü¥O¦æ</link>¼Ò¦¡¤U°õ¦æ®É¡A¥¦¨Ã<emphasis>¤£</emphasis>¥]§t <varname>argv</varname> ©M <varname>argc</varname> ¶µ¥Ø¡C¦¹¨â¶µ¥Ø¥u¦b <varname>$_SERVER</varname> ³¯¦C¤¤¥X²{¡C </simpara> </note> </listitem> @@ -288,12 +196,7 @@ <term><link linkend="reserved.variables.session">$_SESSION</link></term> <listitem> <simpara> - Variables which are currently registered to a script's - session. Analogous to the old - <varname>$HTTP_SESSION_VARS</varname> array (which is still - available, but deprecated). See the <link - linkend="ref.session">Session handling functions</link> section - for more information. + ¥Ø«e©Mµ{¦¡ª`¥U¤Fªº session ÅܼơC¨ä©Ê½èÃþ¦ü¦³ªº <varname>$HTTP_SESSION_VARS</varname>³¯¦C¡AÁöµM¥Ø«eÁÙ¥i¥H¨Ï¥Î¡A¦ý¤£³Q«ØÄ³¡C¸Ô±¡½Ð°Ñ¾\ <link linkend="ref.session">Session ³B²z¨ç¼Æ</link>¤@¸`¡C </simpara> </listitem> </varlistentry> @@ -303,13 +206,10 @@ <sect1 id="language.variables.scope"> - <title>Variable scope</title> + <title>Åܼƽd³ò</title> <simpara> - The scope of a variable is the context within which it is defined. - For the most part all PHP variables only have a single scope. - This single scope spans included and required files as well. For - example: + Åܼƪº½d³ò¥u¬O¦b¨ä©Ò©w¸qªºªÅ¶¡¤º¦s¦b¡C¦b¤j³¡¥÷ªº±¡ªp¤U¡APHP ªºÅܼƥu¦³¤@Ó³æ¤@ªº½d³ò¡C³o³æ¤@ªº½d³ò¤]¥]§t¤F¥H include ©M require ¤è¦¡¤Þ¤JªºÀɮסC¨Ò¦p¡G </simpara> <informalexample> <programlisting role="php"> @@ -322,11 +222,7 @@ </programlisting> </informalexample> <simpara> - Here the <varname>$a</varname> variable will be available within - the included <filename>b.inc</filename> script. However, within - user-defined functions a local function scope is introduced. Any - variable used inside a function is by default limited to the local - function scope. For example: + ¨Ò¤l¤¤¡AÅÜ¼Æ <varname>$a</varname> ¤]¦s¦b¤_³Q¥]§t¤Jªºµ{¦¡ <filename>b.inc</filename> ¤¤¡C¦ý¬O¦b¨Ï¥ÎªÌ¦Ûqªº¨ç¼Æ¤¤¡A¤@Ӱϰì©Êªº¨ç¼Æ½d³ò±N³Q¤Þ¥Î¡C¥ô¦ó¦b¨ç¼Æ¤º¨Ï¥ÎªºÅܼƦb¹w³]ªº±¡ªp¤U¥u§½©ó¸Ó¨ç¼Æªº½d³ò¤º¡C¨Ò¦p¡G </simpara> <informalexample> @@ -347,16 +243,7 @@ </informalexample> <simpara> - This script will not produce any output because the echo statement - refers to a local version of the <varname>$a</varname> variable, - and it has not been assigned a value within this scope. You may - notice that this is a little bit different from the C language in - that global variables in C are automatically available to - functions unless specifically overridden by a local definition. - This can cause some problems in that people may inadvertently - change a global variable. In PHP global variables must be - declared global inside a function if they are going to be used in - that function. An example: + ³oÓµ{¦¡¤£·|¿é¥X¥ô¦óªF¦è¡A¦]¬° echo z¥y¨Ï¥Î¤F¥»°Ï°ìª©¥»ªº <varname>$a</varname> ÅܼơA¦Ó¸Ó¥»°Ï°ìÅܼƨå¼´¿³Q¤À°t¤@ÓÈ¡C§A·|µo²{³o©M C »y¨¥ªº°µªk¤£¦P¡A¦]¬° C ªº¥þ°ìÅܼƬO¦Û°Êªº´£¨Ñµ¹¦U¨ç¼Æ¡A°£«D¦b¥»°ì©w¸q¤¤«ü©úºM¾P¡C¦¹°µªk¥i¯à·|¤ÞP¤@¨Ç°ÝÃD¡A¦p¨Ï¥ÎªÌ¤£·V¦a§ó§ï¤F¥þ°ìÅܼƪºÈ¡C¦b PHP ¤¤¡A¥þ°ìÅܼƦb¥»°ì¨Ï¥Î«e¥²¶·¥ý«Å§G¬°¥þ°ì¡C¨Ò¤l¡G </simpara> <informalexample> @@ -381,17 +268,11 @@ </informalexample> <simpara> - The above script will output "3". By declaring - <varname>$a</varname> and <varname>$b</varname> global within the - function, all references to either variable will refer to the - global version. There is no limit to the number of global - variables that can be manipulated by a function. + ¤Wz¨Ò¤l±N·|¿é¥X "3"¡C¦b¨ç¼Æ¤º«Å§G <varname>$a</varname> ¤Î <varname>$b</varname> ¬°¥þ°ì«á¡A©Ò¦³¯A¤Î¸Ó¨âÓÅܼƪº¨Ï¥Î±N¦Û°Ê«ü¦V¥þ°ìªºª©¥»¡CPHP ¨S¦³©w¤@Ó¨ç¼Æ¥i¥H¨Ï¥Îªº¥þ°ìÅܼƪº¼Æ¶q¡C </simpara> <simpara> - A second way to access variables from the global scope is to use - the special PHP-defined <varname>$GLOBALS</varname> array. The - previous example can be rewritten as: + ²Ä¤GºØ¦s¨ú¥þ°ì½d³ò¤¤ªºÅܼƤèªk¬O¨Ï¥Î¤@ PHP ¯S§O©w¸qªº³¯¦C¡G<varname>$GLOBALS</varname>¡C«e±ªº¨Ò¤l¥i¥H«¼g¬°¡G </simpara> <informalexample> @@ -414,13 +295,7 @@ </informalexample> <simpara> - The <varname>$GLOBALS</varname> array is an associative array with - the name of the global variable being the key and the contents of - that variable being the value of the array element. - Notice how <varname>$GLOBALS</varname> exists in any scope, this - is because $GLOBALS is a <link - linkend="language.variables.superglobals">superglobal</link>. - Here's an example demonstrating the power of superglobals: + <varname>$GLOBALS</varname> ¬O¤@ÓÃöÁp³¯¦C (associative array)¡A¥þ°ìÅܼƪº¦W§Y¬°¯Á¤ÞÁä¡A¦Ó¸ÓÅܼƪº¤º®e§Y¬°³¯¦CªºÈ¡C¦³§_¯d·N¨ì <varname>$GLOBALS</varname> ¦b¥ô¦ó¤@Ó½d³ò³£¥X²{¡H¨º¬O¦]¬° $GLOBALS ¬O¤@Ó<link linkend="language.variables.superglobals">superglobal</link>¡C³o¬O¤@ӥܽd superglobals ±j¤j¥\¯àªº¨Ò¤l¡G </simpara> <para> @@ -448,11 +323,7 @@ </para> <simpara> - Another important feature of variable scoping is the - <emphasis>static</emphasis> variable. A static variable exists - only in a local function scope, but it does not lose its value - when program execution leaves this scope. Consider the following - example: + Åܼƽd³òªº¥t¤@Ó«n¥\¯à¬°<emphasis>ÀRºA</emphasis>ÅܼơCÀRºAÅܼƥu¦b¥»°ì¨ç¼Æ½d³ò¤º¦s¦b¡A¦ý¬O·íµ{¦¡°õ¦æÂ÷¶}¦¹½d³ò®É¡A¥¦¨Ã¤£·|³à¥¢¥¦ªºÈ¡C¬Ý¬Ý¤U±ªº¨Ò¤l¡G </simpara> <informalexample> @@ -471,13 +342,7 @@ </informalexample> <simpara> - This function is quite useless since every time it is called it - sets <varname>$a</varname> to <literal>0</literal> and prints - "0". The <varname>$a</varname>++ which increments the - variable serves no purpose since as soon as the function exits the - <varname>$a</varname> variable disappears. To make a useful - counting function which will not lose track of the current count, - the <varname>$a</varname> variable is declared static: + ¦¹¨ç¼Æ¨S¦³¤°»ò¥Î³B¡A¦]¨C¤@¦¸°õ¦æ¥¦®É¡A¥¦±N <varname>$a</varname> ³]¬° <literal>0</literal> µM«á¦C¦L¥X "0"¡C<varname>$a</varname>++ ¼W¥[¤F <varname>$a</varname> ªºÈ¡A¦ý¨Ã¨S¦³¹ê»Ú¥Î³~¦]¬°¤@¥¹Â÷¶}¤F¸Ó¨ç¼Æ¡AÅÜ¼Æ <varname>$a</varname> ¤]ÀH¤§®ø¥¢¡Cn³]p¤@Ó¦³¥Îªº¡B¤£·|¥á¥¢·í«ep¼Æªºp¼Æ¨ç¼Æ¡A§ÚÌ¥i¥H±N <varname>$a</varname>«Å§G¬°ÀRºA¡G </simpara> <informalexample> @@ -496,18 +361,11 @@ </informalexample> <simpara> - Now, every time the Test() function is called it will print the - value of <varname>$a</varname> and increment it. + ²{¦b¡A¨C·í¨ç¼Æ Test() ³Q©I¥s®É¡A¥¦·|¦C¦L¥X <varname>$a</varname> ªºÈ¡AµM«á¥[¤W¤@¡C </simpara> <simpara> - Static variables also provide one way to deal with recursive - functions. A recursive function is one which calls itself. Care - must be taken when writing a recursive function because it is - possible to make it recurse indefinitely. You must make sure you - have an adequate way of terminating the recursion. The following - simple function recursively counts to 10, using the static - variable <varname>$count</varname> to know when to stop: + ÀRºAÅܼƤ]´£¨Ñ¤@ºØ³B²z»¼°j¨ç¼Æªº¤èªk¡C»¼°j¨ç¼Æ¬O¤@ºØ©I¥s¦Û¤vªº¨ç¼Æ¡C½s¼g»¼°j¨ç¼Æ®É¥²¶·¯d·N¡A¦]¬°Y½s¼g¿ù»~¡A¥¦¦³¥i¯à·|µL©w¦a»¼°j¡C±z¥²¶·½T©w¨¬°÷ªº¤è¦¡¨Ó²×¤î»¼°j¡C¤U¦C²³æªº¨ç¼Æ±N»¼°j¦a¼Æ¨ì 10¡A§Q¥ÎÀRºAÅÜ¼Æ <varname>$count</varname> ¨ÓÂ_©w¤°»ò®ÉÔ°±¤î¡G </simpara> <informalexample> @@ -531,12 +389,7 @@ </informalexample> <simpara> - The Zend Engine 1, driving <literal>PHP4</literal>, implements the - <literal>static</literal> and <literal>global</literal> modifier for - variables in terms of references. For example, a true global variable - imported inside a function scope with the <literal>global</literal> - statement actually creates a reference to the global variable. This can - lead to unexpected behaviour which the following example addresses: + ÅX°Ê <literal>PHP 4</literal> ªº Zend Engine 1 ¬O¥H°Ñ·Óªº¤è¦¡¨Ó¹ê²{ <literal>static</literal> ©M <literal>global</literal> ªº¡C¨Ò¦p¡A¤@Ó¯u¥¿ªº¥þ°ìÅܼƨϥΠ<literal>global</literal> ¤è¦¡¤Þ¶i¤@Ó¨ç¼Æ½d³ò®É¹ê»Ú¤W´N¬O«Ø¥ß¤F¤@Ó¥þ°ìÅܼƪº°Ñ·Ó¡C³o±N¾ÉP¤@¨Ç·N·Q¤£¨ìªº¦æ¬°¡A¥¿¦p¤U¦C¨Ò¤l©Òz¡G </simpara> <informalexample> @@ -563,7 +416,7 @@ </informalexample> <simpara> - Executing this example will result in the following output: + °õ¦æ³oÓ¨Ò¤l±N·|¾ÉP¤U¦Cªº¿é¥X¡G </simpara> <screen> @@ -573,8 +426,7 @@ </screen> <simpara> - A similar behaviour applies to the <literal>static</literal> statement. - References are not stored statically: + <literal>static</literal> ³¯z¦¡¤]·|¾ÉP¦P¼Ëªº¿é¥X¡C°Ñ·Ó¨Ã¨S¦³³QÀRºA¦aÀx¦s¡G </simpara> <informalexample> @@ -618,7 +470,7 @@ </informalexample> <simpara> - Executing this example will result in the following output: + °õ¦æ¦¹¨Ò¤l±N¾ÉP¤U¦Cªº¿é¥X¡G </simpara> <screen> @@ -633,21 +485,17 @@ </screen> <simpara> - This example demonstrates that when assigning a reference to a static - variable, it's not <emphasis>remembered</emphasis> when you call the - <literal>&get_instance_ref()</literal> function a second time. + ¤Wz¨Ò¤l¥Ü½d¤F¦b«ü¬£¤@Ó°Ñ·Óµ¹¤©¤@ÓÀRºAÅܼƫá¡A·í±z²Ä¤G¦¸©I¥s <literal>&get_instance_ref()</literal> ¨ç¼Æ®É¡A¥¦¬O<emphasis>¤£·|</emphasis>°O¦í¤§«eªºÈªº¡C </simpara> </sect1> <sect1 id="language.variables.variable"> - <title>Variable variables</title> + <title>¥iÅÜÅܼÆ</title> <simpara> - Sometimes it is convenient to be able to have variable variable - names. That is, a variable name which can be set and used - dynamically. A normal variable is set with a statement such as: + ¦³®ÉÔ¡A¥i¥H¨Ï¥Î¥iÅÜÅܼƷ|¥O¨ì¤u§@§ó¥[¤è«K¡C¤]´N¬O´N¡A¤@ÓÅܼƪº¦W¥i¥H³Q°ÊºAªº³]©w©M¨Ï¥Î¡C¤@Ó´¶³qªºÅܼƬO¥H¤U¦Cªº¤èªk³]©w¡G </simpara> <informalexample> @@ -661,10 +509,7 @@ </informalexample> <simpara> - A variable variable takes the value of a variable and treats that - as the name of a variable. In the above example, - <emphasis>hello</emphasis>, can be used as the name of a variable - by using two dollar signs. i.e. + ¤@Ó¥iÅÜÅܼƬO¥H¥t¤@ÓÅܼƪºÈ§@¬°¥¦ªºÅܼƦW¡C¦b¤Wz¨Ò¤l¤¤¡A¥un¥[¨âÓ $ ¦b <emphasis>hello</emphasis> ªº«e±´N¥i§â¥¦·í§@¬O¤@ÓÅܼƪº¦W¨Ó¨Ï¥Î¤F¡C§Y¡G </simpara> <informalexample> @@ -678,10 +523,7 @@ </informalexample> <simpara> - At this point two variables have been defined and stored in the - PHP symbol tree: <varname>$a</varname> with contents "hello" and - <varname>$hello</varname> with contents "world". Therefore, this - statement: + ³o®É¡A¦³¨âÓÅܼƳQ©w¸qµM«áÀx¦s¦b PHP ªº²Å¸¹ªí¤¤¡G§t¦³ "hello" ªº <varname>$a</varname> ¤Î§t¦³ "world" ªº <varname>$hello</varname>¡C©Ò¥H¡A¦¹±Ôz¡G </simpara> <informalexample> @@ -695,7 +537,7 @@ </informalexample> <simpara> - produces the exact same output as: + »P¤U¦C³o¥y¦³µÛ¦P¼Ëªº¿é¥X¡G </simpara> <informalexample> @@ -709,48 +551,34 @@ </informalexample> <simpara> - i.e. they both produce: <computeroutput>hello world</computeroutput>. + §Y¡A¥¦Ì³£¿é¥X¡G<computeroutput>hello world</computeroutput>¡C </simpara> <simpara> - In order to use variable variables with arrays, you have to - resolve an ambiguity problem. That is, if you write - <varname>$$a[1]</varname> then the parser needs to know if you - meant to use <varname>$a[1]</varname> as a variable, or if you - wanted <varname>$$a</varname> as the variable and then the [1] - index from that variable. The syntax for resolving this ambiguity - is: <varname>${$a[1]}</varname> for the first case and - <varname>${$a}[1]</varname> for the second. + ¬°¤Fn¦b³¯¦C¤¤¨Ï¥Î¥iÅÜÅܼơA±z¥²¶·º¥ý¸Ñ¨M¤@Ó¼Ò½kªº°ÝÃD¡C¤ñ¤è»¡¡A¦pªG±z¨Ï¥Î <varname>$$a[1]</varname>¡A¨ºåªR¾¹¥²¶·ª¾¹D±z¬O·Q·í <varname>$a[1]</varname> ¬OÅܼƨӨϥΡAÁÙ¬O·í <varname>$$a</varname> ¬OÅܼơAµM«á«ü¦V¨ºÓÅܼƪº²Ä [1] Ó¯Á¤Þ¡C¸Ñ¨M¤Wz¼Ò½k°ÝÃDªº»yªk¬O¡G²Ä¤@Ó±¡ªp¨Ï¥Î <varname>${$a[1]}</varname>¡B²Ä¤GÓ±¡ªp¨Ï¥Î <varname>${$a}[1]</varname>¡C </simpara> <warning> <simpara> - Please note that variable variables cannot be used with PHP's - <link linkend="language.variables.superglobals">Superglobal arrays</link>. - This means you cannot do things like <varname>${$_GET}</varname>. If you are - looking for a way to handle availability of superglobals and the old - <varname>HTTP_*_VARS</varname>, you might want to try - <link linkend="language.references">referencing</link> them. + ¥²¶·¯d·Nªº¬O¡A¥iÅÜÅܼƬO¤£¯à¨Ï¥Î©ó PHP ªº <link linkend="language.variables.superglobals">Superglobal ³¯¦C</link>¡C³oªí¥Ü±z¤£¯à¨Ï¥Î <varname>${$_GET}</varname> ³o¼Ëªº±Ôz¡C¦pªG±z¯uªº·Q¨Ï¥Î superglobals ©Mªº <varname>HTTP_*_VARS</varname>¡A±z¥i¥H¹Á¸Õ¥H<link linkend="language.references">°Ñ·Ó</link>ªº¤è¦¡¨Ï¥Î¡C </simpara> </warning> </sect1> <sect1 id="language.variables.external"> - <title>Variables from outside PHP</title> + <title>¨Ó¦Û PHP ¥H¥~ªºÅܼÆ</title> <sect2 id="language.variables.external.form"> - <title>HTML Forms (GET and POST)</title> + <title>HTML ªí³æ (GET ©MPOST)</title> <simpara> - When a form is submitted to a PHP script, the information from - that form is automatically made available to the script. There - are many ways to access this information, for example: + ·í¤@¥÷ªí³æ¶Ç°eµ¹ PHP µ{¦¡®É¡Aªí³æ¤ºªº¸ê°T±N¦Û°Ê´£¨Ñµ¹¸Óµ{¦¡¡C§Ú̦³«Ü¦h¤èªk¦s¨ú³o¨Ç¸ê°T¡A½d¨Ò¡G </simpara> <para> <example> - <title>A simple HTML form</title> + <title>¤@Ó²³æªº HTML ªí³æ</title> <programlisting role="html"> <![CDATA[ <form action="foo.php" method="post"> @@ -764,13 +592,12 @@ </para> <para> - Depending on your particular setup and personal preferences, there - are many ways to access data from your HTML forms. Some examples are: + ®Ú¾Ú±zªº¦w¸Ë¤è¦¡©MÓ¤H°¾¦n¡APHP ´£¨Ñ¦hºØ¤è¦¡¦s¨ú HTML ªí³æ¤¤ªº¸ê®Æ¡C¤@¨Ç¨Ò¤l¦p¡G </para> <para> <example> - <title>Accessing data from a simple POST HTML form</title> + <title>¦s¨ú¤@Ó¥H POST ¤è¦¡¶Ç°eªºÂ²³æ HTML ªí³æ</title> <programlisting role="html"> <![CDATA[ <?php @@ -782,7 +609,7 @@ import_request_variables('p', 'p_'); print $p_username; -// Available since PHP 3. As of PHP 5.0.0, these long predefined +// Available since PHP 3. As of PHP 5.0.0, these long predefined // variables can be disabled with the register_long_arrays directive. print $HTTP_POST_VARS['username']; @@ -798,55 +625,33 @@ </example> </para> <para> - Using a GET form is similar except you'll use the appropriate - GET predefined variable instead. GET also applies to the - QUERY_STRING (the information after the '?' in an URL). So, - for example, <literal>http://www.example.com/test.php?id=3</literal> - contains GET data which is accessible with <varname>$_GET['id']</varname>. - See also <link linkend="reserved.variables.request">$_REQUEST</link> and - <function>import_request_variables</function>. + ¨Ï¥Î GET ¤è¦¡¶Ç°eªºªí³æ¥ÎªkÃþ¦ü¡A¥u¤£¹L¨Ï¥Î¦X¾Aªº¥ý«e©w¸qªº¨ç¼Æ¡CGET ¤]¥i¨Ï¥Î¦b¬d¸ß¦r¦ê (QUERY_STRING) ¡qURL ¤¤°Ý¸¹ '?' «á±ªº¸ê°T¡r¡C¨Ò¦p¡A<literal>http://www.example.com/test.php?id=3</literal> §t¦³¥H <varname>$_GET['id']</varname> ¤è¦¡¦s¨úªº GET ¸ê®Æ¡C½Ð°Ñ¦Ò <link linkend="reserved.variables.request">$_REQUEST</link> ©M <function>import_request_variables()</function>¡C </para> <note> <para> - <link linkend="language.variables.superglobals">Superglobal arrays</link>, - like <varname>$_POST</varname> and <varname>$_GET</varname>, became - available in PHP 4.1.0 + <link linkend="language.variables.superglobals">Superglobal ³¯¦C</link>¦p <varname>$_POST</varname> ¤Î <varname>$_GET</varname> ¦b PHP ª©¥» 4.1.0 ¥H¤W¤~¶}©l´£¨Ñ¡C </para> </note> <para> - As shown, before PHP 4.2.0 the default value for <link - linkend="ini.register-globals">register_globals</link> - was <emphasis>on</emphasis>. And, in PHP 3 it was always on. The PHP - community is encouraging all to not rely on this directive - as it's preferred to assume it's <emphasis>off</emphasis> and code - accordingly. + ¤W±´£¨ì¡A¦b PHP 4.2.0 ¤§«eªºª©¥»¤¤¡A<link linkend="ini.register-globals">register_globals</link> ªº¹w³]ȬO <emphasis>on</emphasis>¡C¦Ó¦b PHP 3 ¤¤¡A¥¦¥Ã»·¬O on ªº¡C§ÚÌ«ØÄ³©Ò¦³¨Ï¥ÎªÌ¤£n¨Ì¿à¦¹«ü¥O¡A¨Ã¦b½s¼g®É±N¥¦·í§@¬O <emphasis>off</emphasis> ¨Ó³]p±zªºµ{¦¡¡C </para> <note> <para> - The <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> - configuration directive affects Get, Post and Cookie values. If - turned on, value (It's "PHP!") will automagically become (It\'s \"PHP!\"). - Escaping is needed for DB insertion. See also - <function>addslashes</function>, <function>stripslashes</function> and - <link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>. + <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> ²ÕºA«ü¥O·|¼vÅT¨ì Get¡APost ©M Cookie ªºÈ¡C¦pªG¶}±Ò¦¹«ü¥O¡A(It's "PHP!") ªºÈ±NÅܦ¨ (It\'s \"PHP!\")¡C¦¹¸õ¥X¤u§@¦b±N¦r¦ê´¡¤J¸ê®Æ®w«e¬O¥²¶·n°µªº¡C½Ð°Ñ¦Ò <function>addslashes</function>¡A<function>stripslashes</function> ©M <link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>¡C </para> </note> <simpara> - PHP also understands arrays in the context of form variables - (see the <link linkend="faq.html">related faq</link>). You may, - for example, group related variables together, or use this - feature to retrieve values from a multiple select input. For - example, let's post a form to itself and upon submission display - the data: + PHP ¤]À´±o³B²z³¯¦C¦¡ªºªí³æÅܼơq½Ð°ÑÆ[¬ÛÃöªº <link linkend="faq.html">FAQ</link>¡r¡C±z¥i¥H±N¬ÛÃöªºÅܼÆÂkÃþ¡A©Î¥Î¦¹¥\¯à¨Ó¨ú¦^¦h¤¸¿ï¾Ü¿é¤Jªí³æªºÈ¡C¦b¤U¦C½d¨Ò¤¤¡A§Ú̱Nªí³æ±i¶K¨ì¥¦¦Û¤v¡A¨Ã¦b¶Ç°e«á§â¸ê®ÆÅã¥Ü¥X¨Ó¡G + </simpara> <para> <example> - <title>More complex form variables</title> + <title>§ó½ÆÂøªºªí³æÅܼÆ</title> <programlisting role="php"> <![CDATA[ <?php @@ -880,16 +685,14 @@ </para> <para> - In PHP 3, the array form variable usage is limited to - single-dimensional arrays. In PHP 4, no such restriction applies. + PHP 3 ªº³¯¦Cªí³æÅܼƥu¥i¥H¨Ï¥Î¤@ºû³¯¦C¡A¦Ó PHP 4 «h¨S¦³¦¹¨î¡C </para> <sect3 id="language.variables.external.form.submit"> - <title>IMAGE SUBMIT variable names</title> + <title>IMAGE SUBMIT ÅܼƦWºÙ</title> <simpara> - When submitting a form, it is possible to use an image instead - of the standard submit button with a tag like: + ¦b¶Ç°eªí³æ®É¡A§ÚÌ¥i¥H¨Ï¥Î¤U¦C¼ÐÅÒ±N¼Ð·Çªº´£¥æÁä¥H¹Ï¹³¨Ó¨ú¥N¡G </simpara> <informalexample> @@ -901,13 +704,7 @@ </informalexample> <simpara> - When the user clicks somewhere on the image, the accompanying - form will be transmitted to the server with two additional - variables, sub_x and sub_y. These contain the coordinates of the - user click within the image. The experienced may note that the - actual variable names sent by the browser contains a period - rather than an underscore, but PHP converts the period to an - underscore automatically. + ·í¨Ï¥ÎªÌ¦b¹Ï¹³ªº¥ô¦ó¤@³B«ö¤@¤U¡A¦ñÀHªºªí³æ´N·|¶Ç°e¨ì¦øªA¾¹¡AÀH¨ä¦Ó¨ÓÁÙªþ¥[¤F¨âÓÅܼơAsub_x ©M sub_y¡C³o¥]§t¤F¨Ï¥ÎªÌ«ö¦b¹Ï¹³ªº®y¼Ð¡C¦³¸gÅ窺¨Ï¥ÎªÌ©Î³\ª¾¹D¥ÑÂsÄý¾¹¶Ç°e¨ÓªºÅܼƦWºÙÀ³¸Ó¥]§t¥y¸¹¡A¦Ó¤£¬O©³½u¡A¦ý PHP ¦Û°Ê¦a±N¥y¸¹Âà´«¦¨¬°©³½u¡C </simpara> </sect3> @@ -917,24 +714,12 @@ <title>HTTP Cookies</title> <simpara> - PHP transparently supports HTTP cookies as defined by <ulink - url="&spec.cookies;">Netscape's Spec</ulink>. Cookies are a - mechanism for storing data in the remote browser and thus - tracking or identifying return users. You can set cookies using - the <function>setcookie</function> function. Cookies are part of - the HTTP header, so the SetCookie function must be called before - any output is sent to the browser. This is the same restriction - as for the <function>header</function> function. Cookie data - is then available in the appropriate cookie data arrays, such - as <varname>$_COOKIE</varname>, <varname>$HTTP_COOKIE_VARS</varname> - as well as in <varname>$_REQUEST</varname>. See the - <function>setcookie</function> manual page for more details and - examples. + PHP µ´¹ï¤ä´© <ulink + url="&spec.cookies;">Netscape³W®æ</ulink>ªº HTTP cookies¡CCookies ¬O¥Î¨Ó±N¸ê®ÆÀx¦s¦b¥Î¤áºÝªºÂsÄý¾¹¤¤¡A¥H«K¤é«á°lÂÜ©ÎÃѧOªð¦^ªº¨Ï¥ÎªÌ¡C±z¥i¥H¥Î <function>setcookie()</function> ¨ç¼Æ¨Ó³]©w cookies¡CCookies ¬O HTTP header ªº¤@³¡¥÷¡A¦]¦¹ SetCookie ¨ç¼Æ¤@©wn¦b¥ô¦ó¸ê®Æ¶Ç°e¥hÂsÄý¾¹«e©I¥s¡C³o©M <function>header()</function> ¨ç¼Æ¦³µÛ¬Û¦Pªº©w¡CCookie ¸ê®Æ¥i¥H¦b <varname>$_COOKIE</varname>¡A<varname>$HTTP_COOKIE_VARS</varname> ¤Î <varname>$_REQUEST</varname> ³¯¦C¤¤¨Ñ¨Ï¥Î¡C¸Ô±¡©M½d¨Ò½Ð°Ñ¦Ò¤â¥Uªº <function>setcookie()</function> ³¡¥÷¡C </simpara> <simpara> - If you wish to assign multiple values to a single cookie variable, you - may assign it as an array. For example: + Y±zn±N¦hÓÈ«ü¬£µ¹¤@Ó cookie ÅܼơA¨º±z´Nn¨Ï¥Î³¯¦C¨Ó«ü¬£¤F¡C½d¨Ò¡G </simpara> <informalexample> @@ -949,21 +734,15 @@ </informalexample> <simpara> - That will create two seperate cookies although MyCookie will now - be a single array in your script. If you want to set just one cookie - with multiple values, consider using <function>serialize</function> or - <function>explode</function> on the value first. + ³o±N·|«Ø¥ß¨âÓÓ§Oªº cookies¡A¾¨ºÞ²{¦b MyCookie¦b±zªºµ{¦¡¤¤¬O¤@ӳ椸³¯¦C¡C¦pªG±zn¥H¤@Ó cookie «Ø¥ß¦hÓÈ¡A¨º±z¥i¥ý¹ï¨º¨ÇȨϥΠ<function>serialize()</function> ©Î <function>explode()</function> ¨ç¼Æ¡C </simpara> <simpara> - Note that a cookie will replace a previous cookie by the same - name in your browser unless the path or domain is different. So, - for a shopping cart application you may want to keep a counter - and pass this along. i.e. + ¦³¤@ÂI¥²¶·¯d·Nªº¬O¡A¤@Ó cookie ±N·|´À¥NÂsÄý¾¹¤¤¥t¤@Ó¦P¦Wªº cookie¡A°£«D¸Ó cookie ªº¸ô®|©Îºô°ì¦WºÙ¤£¦P¡C©Ò¥H¡A¦b³]pÁʪ«¨®µ{¦¡®É¡A±z³Ì¦n«O«ù¤@Óp¼Æ¾¹¡A¨Ã±N¦¹¼Æ¾Ú¶Ç»¼¤U¥h¡A§Y¡G </simpara> <example> - <title>A <function>setcookie</function> example</title> + <title>¤@Ó <function>setcookie()</function> ªº½d¨Ò</title> <programlisting role="php"> <![CDATA[ <?php @@ -978,13 +757,11 @@ </sect2> <sect2 id="language.variables.external.dot-in-names"> - <title>Dots in incoming variable names</title> + <title>¦bÅܼƦW¦r¤¤ªº¥y¸¹ (dots)</title> <para> - Typically, PHP does not alter the names of variables when they - are passed into a script. However, it should be noted that the - dot (period, full stop) is not a valid character in a PHP - variable name. For the reason, look at it: + ¤@¯ë¤W¡APHP ¨Ã¤£·|§ó§ï¶Ç¤Jµ{¦¡ªºÅܼƦWºÙ¡CµM¦Ó¡A±z¥²¶·¯d·N¥y¸¹ (.) ¨Ã¤£¬O¤@Ó¦³®Äªº PHP ÅܼƦWºÙ¦r¤¸¡A¥¿¦p¡G + <programlisting role="php"> <![CDATA[ <?php @@ -992,34 +769,20 @@ ?> ]]> </programlisting> - Now, what the parser sees is a variable named - <varname>$varname</varname>, followed by the string concatenation - operator, followed by the barestring (i.e. unquoted string which - doesn't match any known key or reserved words) 'ext'. Obviously, - this doesn't have the intended result. + ³o®É¡AåªR¾¹¨£¨ìªº¥u¬O¤@Ó¥s°µ <varname>$varname</varname> ªºÅܼơA¸òÀHµÛ¦r¦ê³sµ²¹Bºâ¤l (.)¡A¦A¨Ó¬O¤@ÓµL¤Þ¸¹ªº¦r¦ê¡Gext¡CÅãµM¦a¡A³o¨Ã¤£·|±a¨Ó±z·Qnªºµ²ªG¡C </para> <para> - For this reason, it is important to note that PHP will - automatically replace any dots in incoming variable names with - underscores. + ¥¿¦]¦p¦¹¡APHP ·|¦Û°Êªº±N¶Ç¤JªºÅܼƦWºÙ¤¤ªº¥y¸¹ (.) §ï¬°©³½u (_)¡C </para> </sect2> <sect2 id="language.variables.determining-type-of"> - <title>Determining variable types</title> + <title>§P©wÅܼƪºÃþ«¬</title> <para> - Because PHP determines the types of variables and converts them - (generally) as needed, it is not always obvious what type a given - variable is at any one time. PHP includes several functions - which find out what type a variable is, such as: - <function>gettype</function>, <function>is_array</function>, - <function>is_float</function>, <function>is_int</function>, - <function>is_object</function>, and - <function>is_string</function>. See also the chapter on - <link linkend="language.types">Types</link>. + ¥Ñ©ó PHP ·|¦Û¦æ§PÂ_ÅܼƪºÃþ«¬¡A¨Ã«ö»ÝnÂàÅÜ¥¦ÌªºÃþ«¬¡A¦]¦¹¦³®É¤]Ãø¥H©úÅã¦a§P©w¤@ÓÅܼƦb¬YӮɨ誺Ãþ«¬¡C¦³Å²©ó¦¹¡APHP ´£¨Ñ¤F´XÓ§P©wÅܼÆÃþ«¬ªº¨ç¼Æ¡G<function>gettype()</function>¡B<function>is_array()</function>¡B<function>is_float()</function>¡B<function>is_int()</function>¡B<function>is_object()</function> ¤Î <function>is_string()</function>¡C½Ð°Ñ¾\<link linkend="language.types">Ãþ«¬</link>¤@³¹¡C </para> </sect2> @@ -1046,4 +809,4 @@ vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 ---> +--> \ No newline at end of file