首頁  >  文章  >  後端開發  >  php預定義變數

php預定義變數

伊谢尔伦
伊谢尔伦原創
2016-11-24 13:47:501296瀏覽

PHP 提供了大量的預定義變數。由於許多變數依賴運行的伺服器的版本和設置,及其它因素,所以並沒有詳細的說明文件。一些預定義變數在 PHP 以命令列形式運行時並不生效。

Warning

PHP 4.2.0 以及後續版本中,PHP 指令 register_globals 的預設值為 off。這是 PHP 的一個主要變化。讓 register_globals 的值為 off 將影響到預定義變數集在全域範圍內的有效性。例如,為了得到DOCUMENT_ROOT 的值,將必須使用$_SERVER['DOCUMENT_ROOT'] 代替$DOCUMENT_ROOT,又如,使用$_GET['id'] 來代替$id 從URL http://www.example.com/test .php?id=3 取得id 值,也或使用$_ENV['HOME'] 來取代$HOME 取得環境變數HOME 的值。

如果有可用的 PHP 預定義變數那最好用,如超全域數組。

從 PHP 4.1.0 開始,PHP 提供了一套附加的預定數組,這些數組變數包含了來自 web 伺服器(如果可用),運行環境,和用戶輸入的資料。這些陣列非常特別,它們在全域範圍內自動生效,例如,在任何範圍內自動生效。因此通常被稱為自動全域變數(autoglobals)或超全域變數(superglobals)。 (PHP 中沒有使用者自訂超全局變數的機制。)超全域變數羅列於下文;但是為了得到它們的內容和關於 PHP 預定義變數的進一步的討論以及它們的本質,請參閱預定義變數。而且,你也會注意到舊的預先定義數組($HTTP_*_VARS)仍舊存在。自 PHP 5.0.0 起, 用register_long_arrays 設定選項可停用 長類型的 PHP 預定義變數陣列。

Note: 可變變數

超級全域變數不能被用作函數或類別方法中的可變變數。

Note:

儘管超全域變數和 HTTP_*_VARS 同時存在,但是它們並不是同一個變量,所以改變其中一個的值並不會對另一個產生影響。

如果某些 variables_order 中的變數沒有設定,它們的對應的 PHP 預定義數組也是空的。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn