PHP 提供了大量的預定義變量.由于許多變量依賴于運行的服務器的版本和設置,及其它因素,所以并沒有詳細的說明文檔.一些預定義變量在 PHP 以命令行形式運行時并不生效.有關這些變量的詳細列表.
用戶自定義預定義變量
實例代碼如下:
系統預定義變量
$GLOBALS
包含一個引用指向每個當前腳本的全局范圍內有效的變量.該數組的鍵名為全局變量的名稱.從 PHP 3 開始存在 $GLOBALS 數組.
$_SERVER
變量由 web 服務器設定或者直接與當前腳本的執行環境相關聯.類似于舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用).
$_GET
經由 URL 請求提交至腳本的變量.類似于舊數組 $HTTP_GET_VARS 數組(依然有效,但反對使用).
$_POST
經由 HTTP POST 方法提交至腳本的變量.類似于舊數組 $HTTP_POST_VARS 數組(依然有效,但反對使用).
$_COOKIE
經由 HTTP Cookies 方法提交至腳本的變量.類似于舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用).
$_FILES
經由 HTTP POST 文件上傳而提交至腳本的變量.類似于舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用).詳細信息請參閱 POST 方法上傳.
$_ENV
執行環境提交至腳本的變量.類似于舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用).
$_REQUEST
經由 GET,POST 和 COOKIE 機制提交至腳本的變量,因此該數組并不值得信任.所有包含在該數組中的變量的存在與否以及變量的順序均按照 php.ini 中的 variables_order 配置指示來定義.此數組在 PHP 4.1.0 之前沒有直接對應的版本.參見 import_request_variables().
自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中.
Note: 當運行于命令行模式時,此數組將不會包含 argv 和 argc 條目;它們已經存在于數組 $_SERVER 中.
$_SESSION
當前注冊給腳本會話的變量.類似于舊數組 $HTTP_SESSION_VARS 數組(依然有效,但反對使用).
$_SERVER['PHP_SELF']
當前正在執行腳本的文件名,與 document root相關.舉例來說,在URL地址為 http://example.com/test.php/foo.bar 的腳本中使用 $_SERVER['PHP_SELF'] 將會得到 /test.php/foo.bar 這個結果.如果 PHP 以命令行方式運行,該變量無效.
$_SERVER['SERVER_NAME']
當前運行腳本所在服務器主機的名稱.如果該腳本運行在一個虛擬主機上,該名稱是由那個虛擬主機所設置的值決定.例如,在URL地址為 /test.php $_SERVER['SERVER_NAME'] 將會得到 這個結果.
實例代碼如下:
下一篇 PHP判斷瀏覽器類型程序代碼詳解