我們在使用PHP遞歸時,會遇到各種各樣的問題,其中比較令人苦惱的是有關PHP遞歸返回值時出現的問題。其實細細想想這是一個很簡單的問題。可就是這個簡單的問題困擾了半個下午。問題出在遞歸函數的返回值上。
這是開始寫的:
復制代碼 代碼如下:
<?php
function test($i)
{
$i -= 4;
if($i < 3)
{
return $i;
}
else
{
test($i);
}
}
echo test(30);
?>
這段代碼看起來沒有問題,其實有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遞歸返回值出現問題時的具體解決方法。