如果您的 $_ENV 陣列莫名其妙地是空的,但您在呼叫 getenv() 或在 phpinfo() 中仍然看到這些變數,請檢查您的 http://us.php.net/manual/en/ini.core.php#ini.variables-order ini 設定,以確保字串中包含「E」。
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_ENV — 環境變數
一個關聯式 陣列,包含透過環境方法傳遞給目前腳本的變數。
這些變數會從執行 PHP 解析器的環境匯入到 PHP 的全域命名空間。許多變數是由執行 PHP 的 shell 提供的,而不同的系統可能會執行不同類型的 shell,因此不可能提供完整的列表。請參閱您的 shell 文件以取得已定義環境變數的列表。
其他環境變數包括 CGI 變數,無論 PHP 是作為伺服器模組還是 CGI 處理器執行,這些變數都會被放置在其中。
範例 #1 $_ENV 範例
<?php
echo '我的使用者名稱是 ' .$_ENV["USER"] . '!';
?>
假設使用者 "bjori" 執行此腳本
上述範例將輸出類似以下的內容
My username is bjori!
備註:
這是一個「超全域」變數,或稱為自動全域變數。這表示它在整個腳本的所有作用域中皆可使用。無需使用 global $variable; 就能在函式或方法中存取它。
如果您的 $_ENV 陣列莫名其妙地是空的,但您在呼叫 getenv() 或在 phpinfo() 中仍然看到這些變數,請檢查您的 http://us.php.net/manual/en/ini.core.php#ini.variables-order ini 設定,以確保字串中包含「E」。
請注意,寫入 $_ENV 並不會實際設定環境變數,也就是說,該變數不會傳播到您啟動的任何子行程(除了分岔的腳本行程,在這種情況下,它只是腳本記憶體中的一個變數)。要設定真正的環境變數,您必須使用 putenv()。
基本上,在 $_ENV 中設定變數除了設定或覆蓋腳本範圍的全域變數外,沒有任何其他意義。因此,除了測試目的(並且如果適用的話,也要小心使用 putenv())之外,不應該修改 $_ENV。
寫入 $_ENV 時,PHP 不會觸發任何錯誤或警告。