超全域變數 在 PHP 4.1.0 中引入,是在全部作用域中始終可用的內建變數。
超全域變數 超全域變數是在全部作用域中始終可用的內建變數。
PHP 中的許多預定義變數都是“超全域的”,這意味著它們在一個腳本的全部作用域中都可用。在函數或方法中無需執行 global $variable; 就可以存取它們。
這些超全域變數是:
$GLOBALS — # #引用全域作用域中可用的全部變數
#一個包含了全部變數的全域組合#陣列。變數的名字就是數組的鍵。
<?php function 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 中存取的最重要的元素:###元素/程式碼 | ##描述|
---|---|
傳回目前執行腳本的檔名。 | |
傳回伺服器所使用的 CGI 規範的版本。 | |
傳回目前執行腳本所在的伺服器的 IP 位址。 | |
傳回目前執行腳本所在的伺服器的主機名稱。 | |
#傳回伺服器識別字串(例如 Apache/2.2.24)。 | |
#傳回請求頁面時通訊協定的名稱和版本(例如,「HTTP/1.0」)。 | |
#傳回存取頁面所使用的請求方法(例如 POST)。 | |
#傳回請求開始時的時間戳記(例如 1577687494)。 | |
返回查詢字串,如果是透過查詢字串存取此頁面。 | |
#傳回來自目前要求的請求頭。 | |
傳回來自目前要求的Accept_Charset 頭( 例如utf-8,ISO-8859-1) | |
傳回來自目前請求的Host 頭。 | |
#傳回目前頁面的完整 URL(不可靠,因為不是所有使用者代理程式都支援)。 | |
是否透過安全 HTTP 協定查詢腳本。 | |
#傳回瀏覽目前頁面的使用者的 IP 位址。 | |
#傳回瀏覽目前頁面的使用者的主機名稱。 | |
會傳回使用者機器上連接到 Web 伺服器所使用的連接埠號碼。 | |
#傳回目前執行腳本的絕對路徑。 | |
該值指明了 Apache 伺服器設定檔中的 SERVER_ADMIN 參數。 | |
Web 伺服器所使用的連接埠。預設值為 “80”。 | |
#傳回伺服器版本和虛擬主機名稱。 | |
#目前腳本所在檔案系統(非文件根目錄)的基本路徑。 | |
#傳回目前腳本的路徑。 | |
#傳回目前頁面的 URI。 |