首頁  >  文章  >  後端開發  >  什麼是php遞歸函數及簡單實例講解

什麼是php遞歸函數及簡單實例講解

伊谢尔伦
伊谢尔伦原創
2017-05-15 13:02:178152瀏覽

什麼是php遞歸函數?

遞歸函數即自呼叫函數,在函數體內部直接或間接的自己呼叫自己,即函數的巢狀呼叫是函數本身。通常在此類型的函數提之中會附加一個條件判斷敘述,以判斷是否需要執行遞歸調用,並且在特定的條件下終止函數的遞歸調用動作,把目前流程的主控權交回到上一層函數來執行。以此,當某個執行遞歸呼叫的函數沒有附加條件判斷敘述時,可能會造成無限迴圈的錯誤情形。

函數遞歸呼叫最大的好處在於可以精簡程式中的複雜重複呼叫程序,並且能以此特性來執行一些較為複雜的運算動作。例如,列表、動態樹形選單及遍歷目錄等操作。對應的非遞歸函數雖然效率高,但卻比較難編程,而且相對來說可讀性差。現代程式設計的目標主要是可讀性好。隨著電腦硬體效能的不斷提高,程式在更多的場合優先考慮可讀而不是高效,所以,鼓勵用遞歸函數實現程式思想。

一個簡單的遞迴呼叫實例如下所示:

<?php
 //声明一个函数,用于测试递归
 function test($n){
   echo $n." ";        //在函数开始输出参数的值
   if($n>0){                //判断参数是否大于0
     test($n-1);            //如果参数大于0则调用自己,并将参数减1后再次传入
   }else{                   //判断参数是不大于0
     echo "<-------->  ";
   }
   echo $n." ";
 }
 test(10);                   //调用test函数将整数10传给参数
?>

該程式執行後輸出如下的結果:

10 9 8 7 6 5 4 3 2 1 0 <--------> 0 1 2 3 4 5 6 7 8 9 10

找到結果中後半部的數字正向順序輸出的原因

說明:在上面的實例中宣告了一個test()函數,該函數需要一個整數型的參數。在函數外面透過傳遞整數 10 作為參數呼叫 test()函數。在 test()函數體中,第一個程式碼輸出參數的值和一個空格。然後判斷條件是否成立,成立則調用自己並將參數減 1 再次傳入。開始呼叫時,它是外層調內層,內層調更內一層,直到最內層因條件不允許而必須結束。最內存結束了,輸出 85035d4d2c2d63d3f587aee1c9d8129e 作為分界符,執行呼叫之後的程式碼輸出參數的值和空格,它就會回到稍外一層繼續執行。稍外一層在結束時,退回到在稍外一層繼續執行,層層推出,直到最外層結束。執行完成以後的結果就是我們上面看到的結果。

以上就是php遞迴函數及簡單實例講解,下一章我們將介紹php實作遞歸函數的三種方法

【相關教學推薦】

1. 《php.cn獨孤九賤(4)-php影片教學

2.  php程式設計從入門到精通全套影片教學

3. php實戰影片教學

#

以上是什麼是php遞歸函數及簡單實例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn