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