環境變數:$_ENV
注: 在 PHP 4.1.0 及以後版本使用。之前的版本,使用 $HTTP_ENV_VARS。
在解析器運行時,這些變數從環境變數轉變為 PHP 全域變數名稱空間(namespace)。它們中的許多都是由 PHP 所啟動並執行系統決定。完整的列表是不可能的。請查看系統的文檔以確定其特定的環境變數。
其它環境變數(包括 CGI 變數),無論 PHP 是以伺服器模組或是以 CGI 處理方式運行,都在這裡列出了。
這是一個“superglobal”,或者可以描述為自動全域變數。這隻不過意味這它在所有的指令碼中都有效。在函數或方法中不需要使用 global $_ENV; 來訪問它,就如同使用 $HTTP_ENV_VARS 一樣。
$HTTP_ENV_VARS 包含著同樣的資訊,但是不是一個自動全域變數(注意:$HTTP_ENV_VARS 和 $_ENV 是不同的變數,PHP 處理它們的方式不同)。
如果設定了 register_globals 指令,這些變數也在所有指令碼中可用;也就是,分離了 $_ENV 和 $HTTP_ENV_VARS 數組。相關資訊,請參閱安全的相關章節使用 Register Globals。這些單獨的全域變數不是自動全域變數。
看個執行個體
<?php教程
echo 'My username is ' .$_ENV["USER"] . '!';
?>
假設 "bjori" 運行此段指令碼
以上常式的輸出類似於:
My username is bjori!
執行個體2
<?php
if (isset($_ENV["HOSTNAME"]))
$MachineName = $_ENV["HOSTNAME"];
else if (isset($_ENV["COMPUTERNAME"]))
$MachineName = $_ENV["COMPUTERNAME"];
else $MachineName = "";
?>
器的運行環境匯入到 PHP 的全域命名空間。很多是由支援 PHP 啟動並執行 Shell 提供的,並且不同的系統很可能運行著不同種類的 Shell,所以不可能有一份確定的列表。請查看你的 Shell 文檔來擷取定義的環境變數列表。
其他環境變數包含了 CGI 變數,而不管 PHP 是以伺服器模組還是 CGI 處理器的方式運行。
$HTTP_ENV_VARS 包含相同的資訊,但它不是一個超全域變數。 (注意 $HTTP_ENV_VARS 和 $_ENV 是不同的變數,PHP 處理它們的方式不同