php中的递归调用函数返回值,深入理解php递归函数返回值的正确用法
本文介紹了php遞歸函數中返回值的正確用法,php遞歸函數中使用return返回值需要注意哪些問題,以加深對php遞歸函數的理解。
php遞歸函數返回值
例子,php遞歸函數返回值寫法。
代碼示例:
0) {
$n--;
return sum($n,$s);
}else{
return $s;
}
}
$sum = 0;
echo sum(5,$sum);
在使用php遞歸函數時,會遇到php遞歸返回值時出現的問題。
通常問題都出在遞歸函數的返回值上。
最初的php遞歸函數的例子:
代碼示例:
以上代碼中,else里面是有問題的。在這里執行的test沒有返回值。
雖然滿足條件$i < 3時 return $i整個函數還是不會返回值的。
對以上php遞歸返回值函數做如下修改:
代碼示例:
< ?php
function test($i)
{
$i -= 4;
if($i < 3)
{
return $i;
}
else
{
return test($i); //增加return, 讓函數返回值
}
}
echo test(30);
?>
二、對php遞歸函數的理解
遞歸函數為自調用函數,在函數體內直接或間接自己調用自己,但需要設置自調用的條件,若滿足條件,則調用函數本身,若不滿足則終止本函數的自調用,然后把目前流程的主控權交回給上一層函數來執行。
例子:
代碼示例:
0){
test($n-1);
}else{
echo "";
}
echo $n."  "
}
test(2)
?>
這個例子最終的輸出結果是2 1 00 1 2
分析:
第一步,執行test(2),echo 2,然后因為2>0,執行test(1), 后面還有沒來得及執行的echo 2
第二步,執行test(1),echo 1,然后因為1>0,執行test(0),同樣后面還有沒來得及執行的 echo 1
第二步,執行test(0),echo 0,執行test(0),echo 0, 此時0>0的條件不滿足,不在執行test()函數,而是echo “”,并且執行后面的 echo 0
此時函數已經不再調用自己,開始將流程的主控權交回給上一層函數來執行,也就是開始執行剛剛所有test()函數沒來得及輸出的最后一個echo,0的一層是1也就是輸出1 1的上一層是2 也就是輸出2 2沒有山一層 所以呢 輸出的內容就是2 1 00 1 2
三、php遞歸函數中使用return返回值需要注意哪些問題?
php遞歸函數中使用return時無法正確返回想要的值怎么辦?
例子:
代碼示例:
function test($i){
$i-=4;
if($i<3){
return $i;
}else{
test($i);
}
}
echotest(30);
以上代碼在運行進,這個函數的else里面是有問題的。在這段代碼里面執行的結果是沒有返回值的。
雖然滿足條件 $i<3 時return $i整個函數還是不會返回值的。
對上面的PHP遞歸函數,做如下修改:
代碼示例:
function test($i){
$i-=4;
if($i<3){
return $i;
}else{
return test($i);//增加return,讓函數返回值
}
}
echotest(30);
如此,在調用php遞歸函數時,就可以返回需要的值了。
總結
以上是生活随笔為你收集整理的php中的递归调用函数返回值,深入理解php递归函数返回值的正确用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息论与编码_中大网络信息理论与编码研讨
- 下一篇: php递归返回值只有第一次的结果,php