PHP8 $GLOBALS

2023-08-19 16:12 更新

$GLOBALS — 引用全局作用域中可用的全部變量

說明

關聯(lián)數(shù)組 array,包含當前腳本內定義成全局范圍的所有變量的引用。 數(shù)組的鍵就是變量的名字。

示例

示例 #1 $GLOBALS 范例

<?php
function test() {
$foo = "local variable";

echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
echo '$foo in current scope: ' . $foo . "\n";
}

$foo = "Example content";
test();
?>

以上示例的輸出類似于:

$foo in global scope: Example content
$foo in current scope: local variable
警告
從 PHP 8.1.0 起,不再支持對整個 $GLOBALS 數(shù)組的寫訪問:

示例 #2 寫入整個 $GLOBALS 將會導致錯誤。

<?php
// 生成編譯時錯誤:
$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;
unset($GLOBALS);
array_pop($GLOBALS);
// ...以及對 $GLOBALS 的任何其他寫入/讀寫操作
?>

注釋

注意:“Superglobal”也稱為自動化的全局變量。這就表示其在腳本的所有作用域中都是可用的。不需要在函數(shù)或方法中用 global $variable; 來訪問它。
注意: 變量可用性與所有其他超全局變量不同,$GLOBALS在PHP中總是可用的。
注意:從 PHP 8.1.0 起, $GLOBALS 現(xiàn)在是全局符號表的只讀副本。 也就是說,全局變量不能通過副本進行修改。 在之前的版本中,$GLOBALS 數(shù)組和 PHP 數(shù)組通常傳值的行為不一樣,全局變量可通過副本修改。 $value) { $GLOBALS[$key] = $value;}?>


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號