php递归函数return会出现无法正确返回想要值的情况
生活随笔
收集整理的這篇文章主要介紹了
php递归函数return会出现无法正确返回想要值的情况
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
php遞歸函數中使用return的時候會碰到無法正確返回想要的值得情況,如果不明白其中的原因,很難找出錯誤的,就下面的具體例子來說明一下吧:
?
| 1 2 3 4 5 6 7 8 9 | function?test($i){ ????$i-=4; ????if($i<3){ ????????return?$i; ????}else{ ????????test($i); ????} } echo?test(30); |
這段代碼看起來沒有問題,如果不運行一下估計你也不會認為他有什么問題,及時運行起來發現有問題你也不一定知道哪里有問題,但其實這個函數的else里面是有問題的。在這段代碼里面執行的結果是沒有返回值的。
所以雖然滿足條件 $i<3 時return $i整個函數還是不會返回值的。因此對上面的PHP遞歸函數可做如下修改:
| 1 2 3 4 5 6 7 8 9 | function?test($i){ ????$i-=4; ????if($i<3){ ????????return?$i; ????}else{ ????????return?test($i);//增加return,讓函數返回值 ????} } echo?test(30); |
轉載于:https://www.cnblogs.com/as3lib/p/6830881.html
總結
以上是生活随笔為你收集整理的php递归函数return会出现无法正确返回想要值的情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 调试与追踪
- 下一篇: 动态规划算法php,php算法学习之动态