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>各類變數</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 的變數都是以 "$" 為開端,後加變數名所組成的。變數名稱是有大小寫之分的。
    </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 [EMAIL PROTECTED]'[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).
+    字母為 a-z,A-Z,而 ASCII 字符則從 127 至 255〈0x7f-0xff〉。 
     </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 [EMAIL PROTECTED]@個變數時,整個原始運算式的值將會[EMAIL PROTECTED]@[EMAIL 
PROTECTED]|[EMAIL PROTECTED]<link linkend="language.expressions">運算式</link>[EMAIL 
PROTECTED]
    </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 [EMAIL PROTECTED]<link linkend="language.references">傳址指派</link>[EMAIL 
PROTECTED]|[EMAIL PROTECTED]@[EMAIL PROTECTED]<link 
linkend="language.types.array">陣列</link>或<link 
linkend="language.types.object">物件</link>時才會察覺速度的提升。
    </para>
    <para>
-    To assign by reference, simply prepend an ampersand (&amp;) 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:
-
+    [EMAIL PROTECTED] (&amp;) 的符號。例如,下列程式碼在使用傳址指派後輸出 'My name 
is Bob' 兩次。
+    
     <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.
+    需要注意的是只有真正命名的變數才可以用來進行傳址指派。
     <informalexample>
      <programlisting role="php">
 <![CDATA[
@@ -112,89 +86,48 @@
   </sect1>
 
   <sect1 id="language.variables.predefined">
-   <title>Predefined variables</title>
+   <title>預設的變數</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 [EMAIL PROTECTED]<link 
linkend="features.commandline">指令行</link>的模式運行時是不能使用的。有關這些變數的列表,請參考<link
 linkend="reserved.variables">保留的先前定義變數</link>[EMAIL PROTECTED]
    </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 以後的版本,<link 
linkend="ini.register-globals">register_globals</link> 指令的預設值是 
<emphasis>off</emphasis>[EMAIL PROTECTED] register_globals 的值預設為 
<emphasis>off</emphasis> 會影響到預設變數在全域範圍內的有效性。例如,要得到 
<varname>DOCUMENT_ROOT</varname> 的值,應使用 
<varname>$_SERVER['DOCUMENT_ROOT']</varname> 而不是 
<varname>$DOCUMENT_ROOT</varname>、使用 <varname>$_GET['id']</varname> 以取得 URL 
<literal>http://www.example.com/test.php?id=3</literal> 中 id 的值,而不是用 
<varname>$id</varname>、或使用 <varname>$_ENV['HOME']</varname> 來取代 
<varname>$HOME</varname>。
     </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.
+    更多與此更改相關的資料可在 <link 
linkend="ini.register-globals">register_globals</link> [EMAIL PROTECTED]<link 
linkend="security.registerglobals">使用 Register Globals</link> 中的安全章,或在 
<ulink url="&url.php.release4.1.0;">4.1.0</ulink> 及 <ulink 
url="&url.php.release4.2.0;">4.2.0</ulink> 的發行通告中取得。
     </simpara>
     <simpara>
-     Using the available PHP Reserved Predefined Variables, like the 
-     <link linkend="language.variables.superglobals">superglobal arrays</link>, 
-     is preferred.
+    我們建議您使用 PHP 提供的保留預設變數,如 <link 
linkend="language.variables.superglobals">superglobal 陳列</link>。
     </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 版本起,PHP [EMAIL 
PROTECTED]|自動地設為全域,即可以在所有範圍內使用。正因如此,它們也被稱為 
'autoglobals' 或 'superglobals'。〈PHP 尚未有使用者自行定義 superglobals 
的功能。〉我們將在下面列出 superglobals,但要知道它們的內容和 PHP 
預設變數的深入討論,請參考<link 
linkend="reserved.variables">保留的先前定義變數</link>[EMAIL 
PROTECTED]|留意舊有的預設變數 (<varname>$HTTP_*_VARS</varname>) 仍然存在。
+    
     &avail.register-long-arrays;
    </simpara>
    
    <note>
-    <title>Variable variables</title>
+    <title>可變變數</title>
     <para>
-     Superglobals cannot be used as 
-     <link linkend="language.variables.variable">variable variables</link>.
+    Superglobals 不能當作<link 
linkend="language.variables.variable">可變變數</link>來使用。
     </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.
+    如果某些 <link linkend="ini.variables-order">variables_order</link> 
中的變數沒有被設定,它們相對的 PHP 預設陳列也將會是空的。
    </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.
+      [EMAIL PROTECTED]<varname>$GLOBALS</varname> 自 PHP 3 開始就已存在。
       </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).
+      由網頁伺服器設定的變數或目前的程式所執行的環境產生的變數。其性質類似舊有的 
<varname>$HTTP_SERVER_VARS</varname> 陳列,雖然目前還可以使用,但不被建議。
       </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).
+      通過 HTTP GET 提供給程式的變數。其性質類似舊有的 
<varname>$HTTP_GET_VARS</varname> 陳列,雖然目前還可以使用,但不被建議。
       </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).
+      通過 HTTP POST 提供給程式的變數。其性質類似舊有的 
<varname>$HTTP_POST_VARS</varname>陳列,雖然目前還可以使用,但不被建議。
       </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).
+      通過 HTTP cookies 提供給程式的變數。其性質類似舊有的 
<varname>$HTTP_COOKIE_VARS</varname>陳列,雖然目前還可以使用,但不被建議。
       </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.
+      通過 HTTP POST 檔案上傳提供給程式的變數。其性質類似舊有的 
<varname>$HTTP_POST_FILES</varname>陳列,雖然目前還可以使用,但不被建議。詳情請參閱 
<link linkend="features.file-upload.post-method">POST 上傳方式</link>。
       </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).
+      執行環境提供給程式的變數。其性質類似舊有的 
<varname>$HTTP_ENV_VARS</varname>陳列,雖然目前還可以使用,但不被建議。
       </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>.
+       
通過任何使用者輸入途徑而提供給程式的變數,也正因如此不值得信任。此陳列中變數的存在與否及次序是決定於
 <link linkend="ini.variables-order">variables_order</link> 的設定。PHP 4.1.0 
之前的版本並沒有類似此陳列的變數。請同時參閱 
<function>import_request_variables</function>。
       </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.
+        在<link 
linkend="features.commandline">指令行</link>模式下執行時,它並<emphasis>不</emphasis>包含
 <varname>argv</varname> 和 <varname>argc</varname> 項目。此兩項目只在 
<varname>$_SERVER</varname> 陳列中出現。
        </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.
+       目前和程式注冊了的 session 變數。其性質類似舊有的 
<varname>$HTTP_SESSION_VARS</varname>陳列,雖然目前還可以使用,但不被建議。詳情請參閱 
<link linkend="ref.session">Session 處理函數</link>[EMAIL PROTECTED]
       </simpara>
      </listitem>
     </varlistentry>
@@ -303,13 +206,10 @@
 
 
   <sect1 id="language.variables.scope">
-   <title>Variable scope</title>
+   <title>變數範圍</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:
+    變數的範圍只是在其所定義的空間內存在。在大部份的情況下,PHP [EMAIL 
PROTECTED]@[EMAIL PROTECTED] include 和 require 方式引入的檔案。例如:
    </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:
+    例子中,變數 <varname>$a</varname> 也存在于被包含入的程式 
<filename>b.inc</filename> [EMAIL PROTECTED]
    </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:
+    這個程式不會輸出任何東西,因為 echo 述句使用了本區域版本的 <varname>$a</varname> 
[EMAIL PROTECTED]|發現這和 C 語言的做法不同,因為 C 
的全域變數是自動的提供給各函數,除非在本域定義中指明撤銷。此做法可能會[EMAIL 
PROTECTED] PHP 中,全域變數在本域使用前必須先宣佈為全域。例子:
    </simpara>
 
    <informalexample>
@@ -381,17 +268,11 @@
    </informalexample>
 
    <simpara>
-    The above script will output &quot;3&quot;.  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.
+    上述例子將會輸出 &quot;3&quot;。在函數內宣佈 <varname>$a</varname> 及 
<varname>$b</varname> 為全域後,所有涉及該兩個變數的使用將自動指向全域的版本。PHP 
[EMAIL PROTECTED]
    </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:
+    [EMAIL PROTECTED] PHP 
特別定義的陳列:<varname>$GLOBALS</varname>。前面的例子可以重寫為:
    </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> [EMAIL PROTECTED] (associative 
array),全域變數的名即為索引鍵,而該變數的內容即為陳列的值。有否留意到 
<varname>$GLOBALS</varname> [EMAIL PROTECTED] $GLOBALS [EMAIL PROTECTED]<link 
linkend="language.variables.superglobals">superglobal</link>[EMAIL PROTECTED] 
superglobals 強大功能的例子:
    </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:
+    [EMAIL 
PROTECTED]<emphasis>靜態</emphasis>變數。靜態變數只在本域函數範圍內存在,但是當程式執行離開此範圍時,它並不會喪失它的值。看看下面的例子:
    </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
-    &quot;0&quot;.  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:
+    [EMAIL PROTECTED] <varname>$a</varname> 設為 <literal>0</literal> 然後列印出 
&quot;0&quot;。<varname>$a</varname>++ 增加了 <varname>$a</varname> [EMAIL PROTECTED] 
<varname>$a</varname> [EMAIL PROTECTED]|丟失當前計數的計數函數,我們可以將 
<varname>$a</varname>宣佈為靜態:
    </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.
+    現在,每當函數 Test() 被呼叫時,它會列印出 <varname>$a</varname> [EMAIL PROTECTED]
    </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:
+    [EMAIL 
PROTECTED]@種呼叫自己的函數。編寫遞迴函數時必須留意,因為若編寫錯誤,它有可能會無定限地遞迴。您必須確定足夠的方式來終止遞迴。下列簡單的函數將遞迴地數到
 10,利用靜態變數 <varname>$count</varname> 來斷定什麼時候停止: 
    </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:
+    驅動 <literal>PHP 4</literal> 的 Zend Engine 1 是以參照的方式來實現 
<literal>static</literal> 和 <literal>global</literal> [EMAIL PROTECTED] 
<literal>global</literal> [EMAIL PROTECTED]@[EMAIL PROTECTED]
    </simpara>
 
    <informalexample>
@@ -563,7 +416,7 @@
    </informalexample>
 
    <simpara>
-    Executing this example will result in the following output:
+    執行這個例子將會導致下列的輸出:
    </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> 陳述式也會導致同樣的輸出。參照並沒有被靜態地儲存:
    </simpara>
    
    <informalexample>
@@ -618,7 +470,7 @@
    </informalexample>
 
    <simpara>
-    Executing this example will result in the following output:
+   執行此例子將導致下列的輸出:
    </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>&amp;get_instance_ref()</literal> function a second time.
+    [EMAIL PROTECTED]@個靜態變數後,當您第二次呼叫 
<literal>&amp;get_instance_ref()</literal> 
函數時,它是<emphasis>不會</emphasis>記住之前的值的。
    </simpara>
 
 
   </sect1>
 
   <sect1 id="language.variables.variable">
-   <title>Variable variables</title>
+   <title>可變變數</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:
+    有時候,可以使用可變變數會[EMAIL PROTECTED]@[EMAIL PROTECTED]
    </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.
+    [EMAIL PROTECTED]@[EMAIL PROTECTED] $ 在 <emphasis>hello</emphasis> [EMAIL 
PROTECTED]@個變數的名來使用了。即:
    </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:
+    這時,有兩個變數被定義然後儲存在 PHP 的符號表中:含有 "hello" 的 
<varname>$a</varname> 及含有 "world" 的 <varname>$hello</varname>。所以,此敘述:
    </simpara>
 
    <informalexample>
@@ -695,7 +537,7 @@
    </informalexample>
 
    <simpara>
-    produces the exact same output as:
+    與下列這句有著同樣的輸出:
    </simpara>
 
    <informalexample>
@@ -709,48 +551,34 @@
    </informalexample>
 
    <simpara>
-    i.e. they both produce: <computeroutput>hello world</computeroutput>.
+    即,它們都輸出:<computeroutput>hello world</computeroutput>。
    </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.
+    [EMAIL PROTECTED] <varname>$$a[1]</varname>,那剖析器必須知道您是想當 
<varname>$a[1]</varname> 是變數來使用,還是當 <varname>$$a</varname> 
是變數,然後指向那個變數的第 [1] [EMAIL PROTECTED] 
<varname>${$a[1]}</varname>、第二個情況使用 <varname>${$a}[1]</varname>。
    </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.
+     必須留意的是,可變變數是不能使用於 PHP 的 <link 
linkend="language.variables.superglobals">Superglobal 陳列</link>。這表示您不能使用 
<varname>${$_GET}</varname> 這樣的敘述。如果您真的想使用 superglobals 和舊的 
<varname>HTTP_*_VARS</varname>,您可以嘗試以<link 
linkend="language.references">參照</link>的方式使用。
     </simpara>
    </warning>
   
   </sect1>
 
   <sect1 id="language.variables.external">
-   <title>Variables from outside PHP</title>
+   <title>來自 PHP 以外的變數</title>
    
    <sect2 id="language.variables.external.form">
-    <title>HTML Forms (GET and POST)</title>
+    <title>HTML 表單 (GET 和POST)</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:
+     [EMAIL PROTECTED] PHP 
程式時,表單內的資訊將自動提供給該程式。我們有很多方法存取這些資訊,範例:
     </simpara>
 
     <para>
      <example>
-      <title>A simple HTML form</title>
+      <title>[EMAIL PROTECTED] 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:
+     根據您的安裝方式和個人偏好,PHP 提供多種方式存取 HTML [EMAIL PROTECTED]
     </para>
     
     <para>
      <example>
-      <title>Accessing data from a simple POST HTML form</title>
+      <title>[EMAIL PROTECTED] POST 方式傳送的簡單 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 方式傳送的表單用法類似,只不過使用合適的先前定義的函數。GET 
也可使用在查詢字串 (QUERY_STRING) 〈URL 中問號 '?' 
後面的資訊〉。例如,<literal>http://www.example.com/test.php?id=3</literal> 含有以 
<varname>$_GET['id']</varname> 方式存取的 GET 資料。請參考 <link 
linkend="reserved.variables.request">$_REQUEST</link> 和 
<function>import_request_variables()</function>。
     </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 陳列</link>如 
<varname>$_POST</varname> 及 <varname>$_GET</varname> 在 PHP 版本 4.1.0 
以上才開始提供。
      </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.
+     上面提到,在 PHP 4.2.0 之前的版本中,<link 
linkend="ini.register-globals">register_globals</link> 的預設值是 
<emphasis>on</emphasis>。而在 PHP 3 中,它永遠是 on [EMAIL PROTECTED] 
<emphasis>off</emphasis> 來設計您的程式。
     </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> 組態指令會影響到 
Get,Post 和 Cookie 的值。如果開啟此指令,(It's "PHP!") 的值將變成 (It\'s 
\"PHP!\")[EMAIL PROTECTED] 
<function>addslashes</function>,<function>stripslashes</function> 和 <link 
linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>。
      </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 也懂得處理陳列式的表單變數〈請參觀相關的 <link 
linkend="faq.html">FAQ</link>〉。您可以將相關的變數歸類,或用此功能來取回多元選擇輸入表單的值。在下列範例中,我們將表單張貼到它自己,並在傳送後把資料顯示出來:
+
     </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 [EMAIL PROTECTED] PHP 4 則沒有此限制。
     </para>
 
     <sect3 id="language.variables.external.form.submit">
-     <title>IMAGE SUBMIT variable names</title>
+     <title>IMAGE SUBMIT 變數名稱</title>
 
      <simpara>
-      When submitting a form, it is possible to use an image instead
-      of the standard submit button with a tag like:
+      在傳送表單時,我們可以使用下列標籤將標準的提交鍵以圖像來取代:
      </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.
+      [EMAIL 
PROTECTED]@下,伴隨的表單就會傳送到伺服器,隨其而來還附加了兩個變數,sub_x 和 
sub_y。這包含了使用者按在圖像的座標。有經驗的使用者或許知道由瀏覽器傳送來的變數名稱應該包含句號,而不是底線,但
 PHP 自動地將句號轉換成為底線。
      </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規格</ulink>的 HTTP cookies。Cookies 
是用來將資料儲存在用戶端的瀏覽器中,以便日後追蹤或識別返回的使用者。您可以用 
<function>setcookie()</function> 函數來設定 cookies。Cookies 是 HTTP header [EMAIL 
PROTECTED] SetCookie [EMAIL PROTECTED] <function>header()</function> 
函數有著相同的限定。Cookie 資料可以在 
<varname>$_COOKIE</varname>,<varname>$HTTP_COOKIE_VARS</varname> 及 
<varname>$_REQUEST</varname> 陳列中供使用。詳情和範例請參考手冊的 
<function>setcookie()</function> 部份。
     </simpara>
 
     <simpara>
-     If you wish to assign multiple values to a single cookie variable, you 
-     may assign it as an array.  For example:
+     [EMAIL PROTECTED] cookie 變數,那您就要使用陳列來指派了。範例:
     </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.
+     這將會建立兩個個別的 cookies,儘管現在 [EMAIL PROTECTED]@個 cookie 
建立多個值,那您可先對那些值使用 <function>serialize()</function> 或 
<function>explode()</function> 函數。
     </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.
+     [EMAIL PROTECTED]@個 cookie 將會[EMAIL PROTECTED] cookie,除非該 cookie 
的路徑[EMAIL PROTECTED]
     </simpara>
 
     <example>
-     <title>A <function>setcookie</function> example</title>
+     <title>[EMAIL PROTECTED] <function>setcookie()</function> 的範例</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>在變數名字中的句號 (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:
+     [EMAIL PROTECTED] 並不會更改傳入程式的變數名稱。然而,您必須留意句號 (.) [EMAIL 
PROTECTED] PHP 變數名稱字元,正如:
+
      <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.
+     [EMAIL PROTECTED] <varname>$varname</varname> 的變數,跟隨著字串連結運算子 
(.)[EMAIL PROTECTED]|帶來您想要的結果。
     </para>
 
     <para>
-     For this reason, it is important to note that PHP will
-     automatically replace any dots in incoming variable names with
-     underscores.
+     正因如此,PHP 會自動的將傳入的變數名稱中的句號 (.) 改為底線 (_)。
     </para>
 
    </sect2>
 
    <sect2 id="language.variables.determining-type-of">
-    <title>Determining variable types</title>
+    <title>判定變數的類型</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 會[EMAIL PROTECTED] 
提供了幾個判定變數類型的函數:<function>gettype()</function>、<function>is_array()</function>、<function>is_float()</function>、<function>is_int()</function>、<function>is_object()</function>
 及 <function>is_string()</function>。請參閱<link 
linkend="language.types">類型</link>[EMAIL PROTECTED]
     </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

-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to