php中局部變量和全局變量 以及靜態變量

局部變量:在函數內部中定義的變量,它的作用域爲函數定義範圍內。
全局變量:在函數外部定義的變量,它的作用域從定義處一直到文件結尾。

在php中函數被視爲單獨的程序片,所以局部變量會覆蓋全局變量,即使局部變量中並定義沒有全局變量相同的變量,也會被覆蓋。
如下:

$a=5;
$b=3;
function t()
{
 echo $a-$b;//輸出0
}

要想在函數中直接使用全局變量可以通過 global關鍵字聲明 或者通過php中自定義的$GLOBALS數組獲取

function t()
{  
 global $a,$b;
 echo $a-$b;
}

function t()
{
 echo $GLOBALS['a']-$GLOBALS['b'];
}

靜態變量:通過static 定義一個靜態變量, 如:

function test()
{
 static $t;
$t++;
return $t;
}
for($i=0;$i<6;$i++)
{
echo test()."<br />";
}
//輸出 1 2 3 4 5 

即靜態變量在第一次初始化後,該變量的值就一直存在內存中,不會隨着函數而被註銷。

注意:如果在函數中 unset() 一個靜態變量,那麼在函數內部此靜態變量將被銷燬。但是,當再次調用此函數時,此靜態變量將被複原爲上次被銷燬之前的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章