萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php $_ENV 環境變量詳解

php $_ENV 環境變量詳解

環境變量:$_ENV 注: 在 PHP 4.1.0 及以後版本使用。之前的版本,使用 $HTTP_ENV_VARS。 在解析器運行時,這些變量從環境變量轉變為 PHP 全局變量名稱空間(namespace)。它們中的許多都是由 PHP 所運行的系統決定。完整的列表是不可能的。請查看系統的文檔以確定其特定的環境變量。

環境變量:$_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 處理它們的方式不同

copyright © 萬盛學電腦網 all rights reserved