超全域變數 在 PHP 4.1.0 中引入,是在全部範圍中始終可用的內建變數。
超全域變數 — 超全域變數是在全部範圍中始終可用的內建變數。
PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個指令碼的全部範圍中都可用。在函數或方法中無需執行 global $variable; 就可以訪問它們。
這些超全域變數是:
$GLOBALS — 引用全域範圍中可用的全部變數
一個包含了全部變數的全域群組合數組。變數的名字就是數組的鍵。
<?phpfunction test(){ $foo = "local variable"; echo '$foo in global scope:'.$GLOBALS['foo'].'<br />';//$foo in global scope:Example content echo '$foo in current scope:'.$foo.'<br />';//$foo in current scope:local variable $GLOBALS['foo'] = '1111'; echo '$foo in global scope:'.$GLOBALS['foo'].'<br />';//$foo in global scope:1111}$foo = "Example content";test();echo $foo.'<br />';//1111
<?= = ] = $GLOBALS[] + $GLOBALS[];.$b.;
global的作用是定義全域變數,但是這個全域變數不是應用於整個網站,而是應用於當前頁面,包括include或require的所有檔案。但是在函數體內定義的global變數,函數體內可以使用,在函數體外定義的global變數不能在函數體內使用,具體看下面樣本。
(1)在函數體內定義global變數,函數體內可以使用。
<?php$a = 1;$b = 2;function sum(){ global $a,$b;//在函數內聲明為全域變數 $b = $a + $b;}sum();echo $a.'---'.$b.'<br />';//1---3
(2)在函數體外定義global變數,函數體內不可以使用。
$a = 1;global $a;//在函數體外把$a定義為global變數function aa(){ echo $a;}aa();//會報錯,不能輸出變數
$_SERVER -- $HTTP_SERVER_VARS [已刪除] — 伺服器和執行環境資訊
是一個包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(script locations)等等資訊的數組。這個數組中的項目由 Web 服務器建立。不能保證每個伺服器都提供全部項目;伺服器可能會忽略一些,或者提供一些沒有在這裡列舉出來的項目。
下表列出了您能夠在 $_SERVER 中訪問的最重要的元素:
元素/代碼 |
描述 |
$_SERVER['PHP_SELF'] |
返回當前執行指令碼的檔案名稱。 |
$_SERVER['GATEWAY_INTERFACE'] |
返回伺服器使用的 CGI 規範的版本。 |
$_SERVER['SERVER_ADDR'] |
返回當前運行指令碼所在的伺服器的 IP 位址。 |
$_SERVER['SERVER_NAME'] |
返回當前運行指令碼所在的伺服器的主機名稱。 |
$_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。 |
<?phpecho '<pre>';print_r($_SERVER);
$_GET -- $HTTP_GET_VARS [已棄用] — HTTP GET 變數
通過 URL 參數傳遞給當前指令碼的變數的數組。
$_POST -- $HTTP_POST_VARS [已棄用] — HTTP POST 變數
當 HTTP POST 請求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 時,會將變數以關聯陣列形式傳入當前指令碼。
$_FILES -- $HTTP_POST_FILES [已棄用] — HTTP 檔案上傳變數
通過 HTTP POST 方式上傳到當前指令碼的項目的數組。
$_COOKIE -- $HTTP_COOKIE_VARS [已棄用] — HTTP Cookies
通過 HTTP Cookies 方式傳遞給當前指令碼的變數的數組。
$_SESSION -- $HTTP_SESSION_VARS [已棄用] — Session 變數
當前指令碼可用 SESSION 變數的數組
$_REQUEST — HTTP Request 變數
$_ENV -- $HTTP_ENV_VARS [已棄用] — 環境變數
通過環境方式傳遞給當前指令碼的變數的數組。
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!