$GLOBALS——引用全局作用域中可用的全部變數。 $GLOBALS一個包含了全部變數的全局組合數組。變數的名字就是數組的鍵。(即所有出現過的全局變數,都可通過$GLOBALS獲取到) 在PHP中,定義在函數體外的全局變數,函數內部是不能直接獲取的,所以需要global聲明或者$GLOBALS[] ...
$GLOBALS
——引用全局作用域中可用的全部變數。
$GLOBALS
一個包含了全部變數的全局組合數組。變數的名字就是數組的鍵。(即所有出現過的全局變數,都可通過$GLOBALS獲取到)
註釋: “Superglobal”也稱為自動化的全局變數。這就表示其在腳本的所有作用域中都是可用的,不需要在函數或方法中用global $variable;來訪問它。
與所有其他超全局變數不同,$GLOBALS在PHP中總是可用的。
在PHP中,定義在函數體外的全局變數,函數內部是不能直接獲取的,所以需要global聲明或者$GLOBALS[]來獲取。
$GLOBALS
和 global
的區別:
- $GLOBALS['variable'] 是外部的全局變數$variable本身。
- global $variable 是外部$variable的同名引用或者指針。也就是在函數產生一個指向函數外部變數的別名變數,而不是真正的函數外部變數。
下麵一個簡單的例子說明:
$a = 1; $b = 2; function Test1(){ echo $a; //輸出 :Notice: Undefined variable: a global $a; echo $a; //輸出: 1 unset($a); } Test1(); echo $a; // 輸出:1 function Test2(){ echo $GLOBALS['a']; //輸出: 1 unset($GLOBALS['a']); } Test2(); echo $a;//輸出:Notice: Undefined variable: a
$GLOBALS
和 global
的相同點:
- 可以在函數內部使用函數外聲明的變數;
- 在函數體外聲明全局變數沒有意義,在函數內部也無法使用。
例子:
global $a; $a = 1; function Test3(){ echo $a; //輸出:Notice: Undefined variable: a } Test3(); $GLOBALS['b'] = 2; function Test4(){ echo $b; //輸出:Notice: Undefined variable: b } Test4();