當表單被提交給 PHP 程式時, 所有在表單中的變數都自動給分隔開並傳給程式。 假如有一張如下例的表單: If the track_vars configuration option is turned on, then these variables will be located in the associative arrays $HTTP_POST_VARS, $HTTP_GET_VARS, and/or $HTTP_POST_FILES, according to the source of the variable in question.
For more information on these variables, please read Predefined variables.
當按下 SUBMIT 後, PHP 會自動指定變數 $name , 其中會儲存表單中 Name: 這一欄所含的值。 PHP 有個叫 track_vars 的可調項, 在開的狀態下用 POST 或 GET 方法提交的表單欄位可以在相應的 $HTTP_POST_VARS 或 $HTTP_GET_VARS 陣列中找到。 要打開這個功能可以改 track_vars 這個參數或使用 指令。
PHP 還可以分解表單中陣列型態的變數。 你可利用這一特性把相關的變數分組或者是儲存容許多項選擇的表單欄位:
In PHP 3, the array form variable usage is limited to single-dimensional arrays. In PHP 4, no such restriction applies.
PHP 支持由 Netscape's Spec所定義的 HTTP cookies。 Cookies 是把資料存到客戶機上的一種方法。 這些資料可以用來辨別用戶的身份。 要設定 COOKIES 可用 SetCookie() 函數。 因為 COOKIES 是 HTTP HEADER 標頭的一部份所以送出 COOKIE 的命令必須把頁面內容輸出給瀏覽器之前執行。 這限制和使用 Header() 函數的限制是一樣的。 至於從瀏覽器送回來的 COOKIES 則像 GET、 POST 方法一樣會自動存在變數�。
如想用一個 COOKIE 存多過一個值, 只需在 COOKIE 名字後加上 []。 示範:
注意除非路徑或網域名字不一樣, 不然你送出的 COOKIE 會取代之前同名的 COOKIE。 因此在編寫購物籃程式時有時要加一個計數器。 就像這樣:
PHP 會自動把關於作業環境的資料整理成一般的變數供程式取用。
小心起見, 讀取環境變數時最好用 getenv()函數, 這是因為 PHP 一樣為表單、COOKIE 等等自動定義變數, 有時候會不小心用了相同的名字, 到時你讀取的可能並不是真正的環境變數。 改動環境變數則可用 putenv()函數。
基本上 PHP 不會擅改變數的名字, 但由於 PHP 之中 '.' 號有特別的意思(串接文句)不可以作為變數名字, 所以帶 '.' 號的變數名稱中的 '.' 會變成 '_':
$varname.ext; /* invalid variable name */ |
由於 PHP 會依內容自動設定變數的形態, 有時候很難一眼看出一個變數到底取用了那一種形態。 為了讓用者取得這類資訊, PHP 有好多個函數可以調用: gettype(), is_long(), is_double(), is_string(), is_array(),和 is_object().