PHP超全域變數的介紹

來源:互聯網
上載者:User
超全域變數 在 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-urlencodedmultipart/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!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.