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