php global用法/php global 變量/$globals php
php global用法/php global 變量/$globals php
最近在研究PHP,期間遇到了global和$GBLOBALS,網上找到的一些資料大多相同,連例子都一樣,學習完后,還是一頭霧水。后來,結合網上材料及自己多方實踐,總結出它的用法。
PHP中的關鍵字global用于聲明或引用全局變量,可以用于函數中,也可以用于函數外(函數外使用沒有語法錯誤,但由于函數外聲明的變量都是全局的,實際沒有意義,所在函數外是不用的)。在函數外聲明的變量,要在函數中使用,就需要用global關鍵字來聲明引入才能使用。如下面代碼t函數中global $x,$y,$z,$d,$e的$x、$y就是在函數中引入的全局變量,之后函數內的表達式$z=$x+$y才能使用。而,$z,$d,$e這三個變量,由于在函數外沒有聲明,所以就是創(chuàng)建或聲明的全局變量,既然是全局變量,它在函數之外或其它函數中也可以使用。函數之外可以直接使用,在另一個函數使用的話,也需要用global來引入,s函數中就引入了t函數聲明的全局變量$d和$e。
<?PHP
$x=3;
$y=5;
function t(){
global $x,$y,$z,$d,$e;//引入$x、$y全局變量、聲明$z,$d,$e全局變量
$d=5;
$e=7;
$z=$x+$y;
}
function s(){
global $m,$n,$d,$e;//引入函數t中聲明的$d,$e變量,聲明$m,$n變量
$m=$e-$d;
$n=$GLOBALS['y']-$GLOBALS['x'];//$GLOBALS用法
echo "<br>";
echo "全局變量\$n等于$n";
}
t();
echo "全局變量\$z等于$z";//函數之外輸出全局變量
s();
echo "<br>";
echo "全局變量\$m等于$m";//輸出函數內聲明的全局變量
?>
下面再來說一下$GLOBALS,PHP函數中聲明的全局變量默認情況下都會在數組$GLOBALS生成一個元素,該元素下標是變量名。函數外使用$GLOBALS沒有什么意義,函數內想直接使用全局變量則可以用$GLOBALS['變量名'],這里需要注意的是$GLOBALS中的$符號不能少,并且GLOBALS必須是大寫。
關鍵詞:php