2013-03-14 50 views
2

對不起,如果這不適合這個問題/答案的格式,但因爲它是肯定的/不希望它沒關係。所以我推薦給我的問題沒有幫助,但是格式相似,所以我認爲我應該沒問題。遞歸基本上會到達「堆棧」的底部,然後反彈回來嗎?

我正在從線上教程(http://devzone.zend.com/283/recursion-in-php-tapping-unharnessed-power/)獲取以下代碼並試圖瞭解正在發生的事情。我所收集的是,從邏輯的角度來看,發生的事情是該函數本身「內部」,一直挖到循環鏈的底部,直到它被饋送一個「固定的」返回值(不調用另一個函數),然後它將值傳遞迴鏈路到開始。換句話說,它潛伏下來然後反彈回來。這是否準確?如果不能理解任何幫助,這顯然是一個非常重要的概念。謝謝!

function factorial($number) { 
     if ($number < 2) { 
      return 1; 
     } else { 
        print("$number * factorial($number-1)<br />"); 
      return ($number * factorial($number-1)); 
     } 
    } 

print factorial(6); 

回答

2

是的。你所說的一切都是正確的,我需要輸入30個字符。

+0

太棒了,謝謝你的回覆。我只是想確保我沒有錯過任何東西! – 2013-03-14 05:19:29