php遞歸函數(shù)中使用return的時(shí)候會(huì)碰到無(wú)法正確返回想要的值得情況,如果不明白其中的原因,很難找出錯(cuò)誤的,就下面的具體例子來(lái)說(shuō)明一下吧:
- function test($i){
- $i-=4;
- if($i<3){
- return $i;
- }else{
- test($i);
- }
- }
- echotest(30);
這段代碼看起來(lái)沒(méi)有問(wèn)題,如果不運(yùn)行一下估計(jì)你也不會(huì)認(rèn)為他有什么問(wèn)題,及時(shí)運(yùn)行起來(lái)發(fā)現(xiàn)有問(wèn)題你也不一定知道哪里有問(wèn)題,但其實(shí)這個(gè)函數(shù)的else里面是有問(wèn)題的。在這段代碼里面執(zhí)行的結(jié)果是沒(méi)有返回值的。所以雖然滿(mǎn)足條件 $i<3 時(shí)return $i整個(gè)函數(shù)還是不會(huì)返回值的。因此對(duì)上面的PHP遞歸函數(shù)可做如下修改(更多PHP教程請(qǐng)?jiān)L問(wèn)代碼家園):
- function test($i){
- $i-=4;
- if($i<3){
- return $i;
- }else{
- return test($i);//增加return,讓函數(shù)返回值
- }
- }
- echotest(30);
新聞熱點(diǎn)
疑難解答