PHP遞歸返回值時(shí)出現(xiàn)的問(wèn)題解決辦法分享
我們?cè)谑褂?a >PHP遞歸時(shí),會(huì)遇到各種各樣的問(wèn)題,其中比較令人苦惱的是有關(guān)PHP遞歸返回值時(shí)出現(xiàn)的問(wèn)題。其實(shí)細(xì)細(xì)想想這是一個(gè)很簡(jiǎn)單的問(wèn)題。可就是這個(gè)簡(jiǎn)單的問(wèn)題困擾了半個(gè)下午。問(wèn)題出在遞歸函數(shù)的返回值上。
#t#這是開(kāi)始寫的:
- < ?php
- function test($i)
- {
- $i -= 4;
- if($i < 3)
- {
- return $i;
- }
- else
- {
- test($i);
- }
- }
- echo test(30);
- ?>
這段代碼看起來(lái)沒(méi)有問(wèn)題,其實(shí)有else里面是有問(wèn)題的。在這里執(zhí)行的test沒(méi)有返回值。所以雖然滿足條件$i < 3時(shí) return $i整個(gè)函數(shù)還是不會(huì)返回值的。對(duì)上面的PHP遞歸返回值函數(shù)做如下修改:
- < ?php
- function test($i)
- {
- $i -= 4;
- if($i < 3)
- {
- return $i;
- }
- else
- {
- return test($i); //增加return, 讓函數(shù)返回值
- }
- }
- echo test(30);
- ?>
以上代碼示例就是PHP遞歸返回值出現(xiàn)問(wèn)題時(shí)的具體解決方法。

















