在做網(wǎng)站中變量都必須在有效的范圍內使用,如果超出有效范圍,則變量就失去意義。變量的作用域如下表所示。
例如,在下面示例中,函數體內是無(wú)法引用全局變量的。
<?php$a = 1; //聲明全局變量function test(){ echo $a; //引用全局變量,則無(wú)效}test(); //調用函數,顯示為空?>
但是,如果在函數體使用global關(guān)鍵字聲明變量之后,則可以在函數內引用全局變量。
<?php$a = 1; //聲明全局變量function test(){ global $a; //聲明全局變量 echo $a; //引用全局變量,有效}test(); //調用函數,顯示為1?>
靜態(tài)變量?jì)H在局部函數域中存在,但當程序執行離開(kāi)此作用域時(shí),其值并不會(huì )丟失。例如,在下面示例中靜態(tài)變量$count能夠持續存儲現在疊加的值。
<?phpfunction test(){ static $count = 0; //聲明靜態(tài)變量 $count++; //遞加變量值echo $count; //顯示變量值 if ($count < 10) { //如果變量值小于10,則繼續調用函數 test(); }}test(); //調用函數echo "<p>";test(); //第二次調用函數?>
靜態(tài)變量提供了一種處理遞歸函數的方法。遞歸函數是一種調用自己的函數,用戶(hù)在寫(xiě)遞歸函數時(shí)要小心,因為可能會(huì )無(wú)窮遞歸下去,所以必須確保有充分的方法來(lái)中止遞歸。這個(gè)簡(jiǎn)單的函數遞歸計數到10,使用靜態(tài)變量$count來(lái)判斷何時(shí)停止,當時(shí)即便函數中止,如果繼續調用函數,用戶(hù)會(huì )發(fā)現$count的值是從11開(kāi)始的,而不是0,演示效果如下圖所示。
當前文章標題:變量作用域
當前URL:http://amzcoolest.com/news/wzzz/3238.html
上一篇:聲明和使用變量
下一篇:可變變量