|
復(fù)制代碼 代碼如下:
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)有返回值的。所以雖然滿足條件 $i<3 時(shí)return $i整個(gè)函數(shù)還是不會(huì)返回值的。因此對(duì)上面的php遞歸函數(shù)可做如下修改(更多php教程請(qǐng)?jiān)L問(wèn)代碼家園):
復(fù)制代碼 代碼如下:
function test($i){
$i-=4;
if($i<3){
return $i;
}else{
return test($i);//增加return,讓函數(shù)返回值
}
}
echotest(30);
php技術(shù):php遞歸函數(shù)中使用return的注意事項(xiàng),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。