1. 程式人生 > 其它 >php超級全域性變數

php超級全域性變數

PHP中預定義了幾個超級全域性變數(superglobals),這意味著它們在一個指令碼的全部作用域中都可用。不需要特別說明,就可以在函式及類中使用

$GLOBALS是一個包含了全部變數的全域性組合陣列

比如:

<?php 
$x = 75; 
$y = 25;
 
function addition() 
{ 
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
 
addition(); 
echo $z; 
?>

$_SERVER是一個包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(scriptlocations)等等資訊的陣列。這個陣列中的專案由Web伺服器建立

$_SERVER變數中的重要元素

$_SERVER['PHP_SELF']:當前執行指令碼的檔名,與documentroot有關例如,在地址為http://example.com/test.php/foo.bar的指令碼中使用$_SERVER['PHP_SELF']將得到/test.php/foo.bar__FILE__常量包含當前(例如包含)檔案的完整路徑和檔名從PHP4.3.0版本開始,如果PHP以命令列模式執行,這個變數將包含指令碼名之前的版本該變數不可用
$_SERVER['GATEWAY_INTERFACE']:伺服器使用的CGI規範的版本;例如,"CGI/1.1"
$_SERVER['SERVER_ADDR']:當前執行指令碼所在的伺服器的IP地址
$_SERVER['SERVER_NAME']:當前執行指令碼所在的伺服器的主機名如果指令碼運行於虛擬主機中,該名稱是由那個虛擬主機所設定的值決定(如:www.runoob.com)
$_SERVER['SERVER_SOFTWARE']:伺服器標識字串,在響應請求時的頭資訊中給出(如:Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL']:請求頁面時通訊協議的名稱和版本例如,"HTTP/1.0"
$_SERVER['REQUEST_METHOD']:訪問頁面使用的請求方法;例如,"GET","HEAD","POST","PUT"
$_SERVER['REQUEST_TIME']:請求開始時的時間戳從PHP5.1.0起可用(如:1377687496)
$_SERVER['QUERY_STRING']:querystring(查詢字串),如果有的話,通過它進行頁面訪問
$_SERVER['HTTP_ACCEPT']:當前請求頭中Accept:項的內容,如果存在的話
$_SERVER['HTTP_ACCEPT_CHARSET']:當前請求頭中Accept-Charset:項的內容,如果存在的話例如:"iso-8859-1,*,utf-8"
$_SERVER['HTTP_HOST']:當前請求頭中Host:項的內容,如果存在的話
$_SERVER['HTTP_REFERER']:引導使用者代理到當前頁的前一頁的地址(如果存在)由useragent設定決定並不是所有的使用者代理都會設定該項,有的還提供了修改HTTP_REFERER的功能簡言之,該值並不可信)
$_SERVER['HTTPS']:如果指令碼是通過HTTPS協議被訪問,則被設為一個非空的值
$_SERVER['REMOTE_ADDR']:瀏覽當前頁面的使用者的IP地址
$_SERVER['REMOTE_HOST']:瀏覽當前頁面的使用者的主機名DNS反向解析不依賴於使用者的REMOTE_ADDR
$_SERVER['REMOTE_PORT']:使用者機器上連線到Web伺服器所使用的埠號
$_SERVER['SCRIPT_FILENAME']:當前執行指令碼的絕對路徑
$_SERVER['SERVER_ADMIN']:該值指明瞭Apache伺服器配置檔案中的SERVER_ADMIN引數如果指令碼執行在一個虛擬主機上,則該值是那個虛擬主機的值(如:[email protected])
$_SERVER['SERVER_PORT']:Web伺服器使用的埠預設值為"80"如果使用SSL安全連線,則這個值為使用者設定的HTTP埠
$_SERVER['SERVER_SIGNATURE']:包含了伺服器版本和虛擬主機名的字串
$_SERVER['PATH_TRANSLATED']:當前指令碼所在檔案系統(非文件根目錄)的基本路徑這是在伺服器進行虛擬到真實路徑的映像後的結果
$_SERVER['SCRIPT_NAME']:包含當前指令碼的路徑這在頁面需要指向自己時非常有用__FILE__常量包含當前指令碼(例如包含檔案)的完整路徑和檔名
$_SERVER['SCRIPT_URI']:URI用來指定要訪問的頁面例如"/index.html"

$_REQUEST用於收集HTML表單提交的資料

比如:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
 
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>

$_POST被廣泛應用於收集表單資料,在form標籤的指定該屬性:"method="post"

例子同上

$_GET同樣被廣泛應用於收集表單資料,在form標籤的指定該屬性:"method="get"

其他超級全域性變數

$_FILES $_ENV $_COOKIE $_SESSION