1.global
Global的作用是定義全局變量,但是這個全局變量不是應用於整個網站,而是應用於當前頁面,包括include或require的所有文件。
但是在函數體內定義的global變量,函數體內可以使用,在函數體外定義的global變量不能在函數體內使用,具體看下面示例。
(1)在函數體內定義global變量,函數體內可以使用。
<?PHP $a=123; function aa() { Global $a; //把$a定義為global變量。 echo $a; //調用函數體外的變量 } aa(); //輸出結果為123,說明函數體內可以使用函數體外的變量; ?>
(2)在函數體外定義global變量,函數體內不可以使用。
<?PHP $a=123; Global $a; //在函數體外把$a定義為global變量。 function aa() { echo $a; } aa();//會報錯,不能輸出變量a。 ?>
2.$GLOBALS
在 $GLOBALS 數組中,每一個變量為一個元素,鍵名對應變量名,值對應變量的內容。$GLOBALS 之所以在全局范圍內存在,是因為 $GLOBALS 是一個超全局變量。注意$GLOBALS 的寫法,比如變量$a1,寫法為$GLOBALS['a1']。
示例:先使用global定義
<?PHP $a1 = 1; $a2 = 2; function Sum() { global a1, a2;a2 = a1 + a2; //定義變a1和a2; } Sum(); echo a2; //輸出結果為3 ?>
使用$GLOBALS定義全局變量
<?PHP $a1 = 1; $a2 = 2; function Sum() { $GLOBALS['a1'] = $GLOBALS['a1'] + $GLOBALS['a2']; //定義變量時每個都要定義 } Sum(); echo a2; //輸出結果為2 ?>
例1:
function test() { global $a;//定義全局變量a unset($a); //刪除變量a //print $a;//會報錯,因為unset已經把$a刪除了。 } $a = 2; //定義一個變量a test(); //調用test()方法 print $a; //輸出a,輸出的其實是$a = 2,所以結果為2.
例2:
function test_global() { global $var1, $var2; $var2 =& $var1; } function test_globals() { $GLOBALS['var3'] =& $GLOBALS['var1']; } $var1 = 5; $var2 = $var3 = 0; test_global(); print $var2; //輸出結果為0 test_globals(); print $var3; //輸結果為5