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