php遞歸函數(shù)中使用return的注意事項(xiàng)
更新時(shí)間:2014年01月17日 16:21:06 作者:
php遞歸函數(shù)中使用return的時(shí)候會(huì)碰到無(wú)法正確返回想要的值得情況,下面就來(lái)舉例子來(lái)說(shuō)明一下吧
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)有返回值的。所以雖然滿足條件 $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);
復(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);
相關(guān)文章
幾種有用的變型 PHP中循環(huán)語(yǔ)句的用法介紹
for語(yǔ)句可以說(shuō)是PHP(同時(shí)也是多種語(yǔ)言)的循環(huán)控制部份最基本的一個(gè)語(yǔ)句了,for語(yǔ)句的執(zhí)行規(guī)律和基礎(chǔ)用法在這里就不多說(shuō),可以參見(jiàn)PHP手冊(cè)for語(yǔ)句部分2012-01-01php中目錄操作opendir()、readdir()及scandir()用法示例
這篇文章主要介紹了php中目錄操作opendir()、readdir()及scandir()用法,結(jié)合具體實(shí)例形式分析了PHP使用opendir()、readdir()及scandir()讀取目錄的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06調(diào)試一段PHP程序時(shí)遇到的三個(gè)問(wèn)題
調(diào)試一段PHP程序時(shí)遇到的三個(gè)問(wèn)題,學(xué)習(xí)php的朋友可以參考下。2012-01-01php+AJAX傳送中文會(huì)導(dǎo)致亂碼的問(wèn)題的解決方法
關(guān)于在AJAX中GET回的ResponseText中文亂碼的最簡(jiǎn)解決辦法2008-09-09PHP實(shí)現(xiàn)將HTML5中Canvas圖像保存到服務(wù)器的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)將HTML5中Canvas圖像保存到服務(wù)器的方法,可實(shí)現(xiàn)將Canvas圖像保存到服務(wù)器的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11