PHP 全域變數 - 超全域變數
PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以存取它們。
這些超全域變數是:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
_SESSION
本節會介紹一些超全域變量,並會在稍後的章節中講解其他的超全域變數。
$GLOBALS — 引用全域作用域中可用的全部變數
$GLOBALS 這種全域變數用於在 PHP 腳本中的任意位置存取全域變數(從函數或方法中均可)。
PHP 在名為 $GLOBALS[index] 的陣列中儲存了所有全域變數。變數的名字就是數組的鍵。
下面的例子展示瞭如何使用超級全域變數$GLOBALS:
實例
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
登入後複製
運行實例
在上面的例子中,由於z 是$GLOBALS 數組中的變量,因此在函數之外也可以訪問它。
PHP $_SERVER
$_SERVER 這個超全域變數會保存關於報頭、路徑和腳本位置的資訊。
下面的範例展示如何使用$_SERVER 中的某些元素:
實例
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
登入後複製
運行實例
下表列出了您能夠在$_SERVER 中訪問的最重要的元素:
元素/代碼描述
$_SERVER['PHP_SELF'] 傳回目前執行腳本的檔案名稱。
$_SERVER['GATEWAY_INTERFACE'] 傳回伺服器所使用的 CGI 規範的版本。
$_SERVER['SERVER_ADDR'] 傳回目前執行腳本所在的伺服器的 IP 位址。
$_SERVER['SERVER_NAME'] 傳回目前執行腳本所在的伺服器的主機名稱(例如 www.w3school.com.cn)。
$_SERVER['SERVER_SOFTWARE'] 傳回伺服器識別字串(如 Apache/2.2.24)。
$_SERVER['SERVER_PROTOCOL'] 傳回請求頁面時通訊協定的名稱和版本(例如,「HTTP/1.0」)。
$_SERVER['REQUEST_METHOD'] 傳回存取頁面所使用的請求方法(例如 POST)。
$_SERVER['REQUEST_TIME'] 傳回請求開始時的時間戳記(例如 1577687494)。
$_SERVER['QUERY_STRING'] 傳回查詢字串,如果是透過查詢字串存取此頁面。
$_SERVER['HTTP_ACCEPT'] 傳回來自目前要求的請求頭。
$_SERVER['HTTP_ACCEPT_CHARSET'] 傳回來自目前要求的 Accept_Charset 頭( 例如 utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST'] 傳回來自目前請求的 Host 頭。
$_SERVER['HTTP_REFERER'] 傳回目前頁面的完整 URL(不可靠,因為不是所有使用者代理程式都支援)。
$_SERVER['HTTPS'] 是否透過安全 HTTP 協定查詢腳本。
$_SERVER['REMOTE_ADDR'] 傳回瀏覽目前頁面的使用者的 IP 位址。
$_SERVER['REMOTE_HOST'] 傳回瀏覽目前頁面的使用者的主機名稱。
$_SERVER['REMOTE_PORT'] 傳回用戶機器上連接到 Web 伺服器所使用的連接埠號碼。
$_SERVER['SCRIPT_FILENAME'] 傳回目前執行腳本的絕對路徑。
$_SERVER['SERVER_ADMIN'] 該值指明了 Apache 伺服器設定檔中的 SERVER_ADMIN 參數。
$_SERVER['SERVER_PORT'] Web 伺服器使用的連接埠。預設值為 “80”。
$_SERVER['SERVER_SIGNATURE'] 傳回伺服器版本和虛擬主機名稱。
$_SERVER['PATH_TRANSLATED'] 目前腳本所在檔案系統(非文檔根目錄)的基本路徑。
$_SERVER['SCRIPT_NAME'] 傳回目前腳本的路徑。
$_SERVER['SCRIPT_URI'] 傳回目前頁面的 URI。
PHP $_REQUEST
PHP $_REQUEST 用來收集 HTML 表單提交的資料。
下面的範例展示了一個包含輸入欄位及提交按鈕的表單。當使用者透過點擊提交按鈕來提交表單資料時, 表單資料將發送到