首頁 > 後端開發 > PHP問題 > php中全域數組是什麼意思

php中全域數組是什麼意思

WBOY
發布: 2023-03-16 20:32:01
原創
2311 人瀏覽過

PHP中全域資料的全名為超全域數組或超全域變量,是PHP中特殊定義的數組變數;超全域數組可以在腳本中的任何地方、任何作用域內都可以訪問,超全局數組變數是在全部作用域中始終可用的內建變數。

php中全域數組是什麼意思

本文操作環境:Windows10系統、PHP8.1版、Dell G3電腦

php中全域陣列是什麼意思

#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影片教學

以上是php中全域數組是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板