function test(){static $count = 0;$count++;echo $count;if ($count < 10) {
test();}
$count--;echo $count;}test();這段代碼的輸出為123456789109876543210,前面輸出1-109我可以想得通,但是后面輸出的8-0是怎么輸出的,按照我的想法,應(yīng)該是輸出123456789109就結(jié)束了,并沒有循環(huán)來執(zhí)行$count--;echo $count;的動(dòng)作???請問我哪里錯(cuò)了,謝謝,我新手,大佬莫怪
2 回答

婷婷同學(xué)_
TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
直接跟著代碼的思路邏輯一遍遍在腦海想想就知道答案的了。當(dāng)你小于 10 的時(shí)候都遞歸運(yùn)行代碼,每次運(yùn)行都會自增后輸出,直到 $count < 10 不能滿足,并執(zhí)行自減輸出。這會也即 9 進(jìn)入 test() 自增為 10 ,然后自減。但是你別往了,因?yàn)槟愕拇a是遞歸進(jìn)來的,它還要一層層地出去,你進(jìn)來多少層就出去多少層,因?yàn)槟闵厦孀栽鍪且淮?,下面自減也是一次,所以,最終結(jié)果會和開始一樣的。
- 2 回答
- 0 關(guān)注
- 708 瀏覽
添加回答
舉報(bào)
0/150
提交
取消