php自訂函數(shù)之靜態(tài)變數(shù)
如果我想知道函數(shù)被呼叫了多少次怎麼辦?在沒有學(xué)習(xí)靜態(tài)變數(shù)的時(shí)候,我們沒有好的方法來解決。
靜態(tài)變數(shù)的特點(diǎn)是:宣告一個(gè)靜態(tài)變量,第二次呼叫函數(shù)的時(shí)候,靜態(tài)變數(shù)不會(huì)再初始化變數(shù),會(huì)在原值的基礎(chǔ)上讀取執(zhí)行。
有了這個(gè)特點(diǎn),我們就可以實(shí)現(xiàn),最開始我們的提問:
函數(shù)呼叫詞數(shù)的統(tǒng)計(jì)。
先執(zhí)行10次demo()函數(shù)試試,再執(zhí)行10次test()函數(shù)試試:
<?php function demo() { $a = 0; echo $a; $a++; } function test() { static $a = 0; echo $a; $a++; } demo(); demo(); demo(); demo(); demo(); demo(); demo(); demo(); demo(); demo(); /* for($i = 0 ;$i < 10 ; $i++){ test(); } */ ?>
上例你會(huì)發(fā)現(xiàn):
test();執(zhí)行一次數(shù)值就會(huì)加1,而demo輸出的顯示結(jié)果,總是0。
透過上例你就會(huì)發(fā)現(xiàn),本文開始處所說明的靜態(tài)變數(shù)的特徵。