PHP中全域性資料的全稱是超全域性陣列或者超全域性變數,是PHP中特殊定義的陣列變數;超全域性陣列可以在指令碼中的任何地方、任何作用域內都可以存取,超全域性陣列變數是在全部作用域中始終可用的內建變數。
php零基礎到就業直播視訊課:進入學習
程式設計師必備介面測試偵錯工具:
本文操作環境:Windows10系統、PHP8.1版、Dell G3電腦
php全域性陣列全稱「超全域性陣列」或「超全域性變數」,是PHP中特殊定義的陣列變數,之所以稱為超全域性陣列是因為這些陣列在指令碼中的任何地方、任何作用域內都可以存取,如函數、類、檔案等。
超全域性陣列變數是在全部作用域中始終可用的內建變數
PHP中的超全域性陣列包括以下幾個:
$GLOBALS
一個包含了全部變數的全域性組合陣列。變數的名字就是陣列的鍵。
使用var_dump($GLOBALS)列印,就可以看出$GLOBALS是一個包含了所有的一個全域性組合陣列。
從 PHP 8.1.0 起,$GLOBALS 現在是全域性符號表的唯讀副本。 也就是說,全域性變數不能通過副本進行修改。 在之前的版本中,$GLOBALS 陣列和 PHP 陣列通常傳值的行為不一樣,全域性變數可通過副本修改。
PHP 8.1.0 之前:
$a = 1;$globals = $GLOBALS; // 表面意義的按值複製$globals['a'] = 2; // $GLOBALS['a'] 的值也相應修改 var_dump($a);//執行結果: int(2)
從 PHP 8.1.0 起:
$a = 1;$globals = $GLOBALS; //表面意義的按值複製$globals['a'] = 2; // $GLOBALS['a'] 的值不會改變(不再修改 $a) var_dump($a);//執行結果: int(1)
要恢復以前的行為,請迭代其副本並將每個屬性分配回 $GLOBALS:
foreach ($globals as $key => $value) { $GLOBALS[$key] = $value;}
$_SERVER
$_SERVER——伺服器和執行環境資訊。$_SERVER是一個包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(script locations)等等資訊的陣列。這個陣列中的專案由 Web 伺服器建立。
$_GET
通過 URL 引數傳遞給當前指令碼的變數的陣列。注意:該陣列不僅僅對 method 為 GET 的請求生效,而是會針對所有帶 query string 的請求。
$_POST
預定義的 $_POST 變數用於收集來自 method="post" 的表單中的值。
當 HTTP POST 請求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 時,會將變數以關聯陣列形式傳入當前指令碼。
從帶有 POST 方法的表單傳送的資訊,對任何人都是不可見的(不會顯示在瀏覽器的位址列),並且對傳送資訊的量也沒有限制。
註釋:然而,預設情況下,POST 方法的傳送資訊的量最大值為 8 MB(可通過設定 php.ini 檔案中的 post_max_size 進行更改)。
$_REQUEST
預設情況下包含了 $_GET,$_POST 和 $_COOKIE 的陣列。由於安全的問題,建議儘量避免使用$_REQUEST。
$_COOKIE
通過 HTTP Cookies 方式傳遞給當前指令碼的變數的陣列。
$_SESSION
當前指令碼可用 SESSION 變數的陣列。
$_FILES
通過 HTTP POST 方式上傳到當前指令碼的專案的陣列。
$_ENV
通過環境方式傳遞給當前指令碼的變數的陣列。
這些變數被從 PHP 解析器的執行環境匯入到 PHP 的全域性名稱空間。很多是由支援 PHP 執行的 Shell 提供的,並且不同的系統很可能執行著不同種類的 Shell,所以不可能有一份確定的列表。請檢視你的 Shell 檔案來獲取定義的環境變數列表。
其他環境變數包含了 CGI 變數,而不管 PHP 是以伺服器模組還是 CGI 處理器的方式執行。
推薦學習:《》
以上就是php中全域性陣列是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!