php递归函数及简单实例讲解
遞歸函數即自調用函數,在函數體內部直接或者間接的自己調用自己,即函數的嵌套調用是函數本身。通常在此類型的函數提之中會附加一個條件判斷敘述,以判斷是否需要執行遞歸調用,并且在特定的條件下終止函數的遞歸調用動作,把目前流程的主控權交回到上一層函數來執行。以此,當某個執行遞歸調用的函數沒有附加條件判斷敘述時,可能會造成無限循環的錯誤情形。
函數遞歸調用最大的好處在于可以精簡程序中的復雜重復調用程序,并且能以這種特性來執行一些較為復雜的運算動作。例如,列表、動態樹形菜單及遍歷目錄等操作。相應的非遞歸函數雖然效率高,但卻比較難編程,而且相對來說可讀性差?,F代程序設計的目標主要是可讀性好。隨著計算機硬件性能的不斷提高,程序在更多的場合優先考慮可讀而不是高效,所以,鼓勵用遞歸函數實現程序思想。
一個簡單的遞歸調用實例如下所示:
<?php//聲明一個函數,用于測試遞歸function test($n){echo $n." "; //在函數開始輸出參數的值if($n>0){ //判斷參數是否大于0test($n-1); //如果參數大于0則調用自己,并將參數減1后再次傳入}else{ //判斷參數是不大于0echo "<--------> ";}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 再次傳入。開始調用時,它是外層調內層,內層調更內一層,直到最內層由于條件不允許必須結束。最內存結束了,輸出 <--------> 作為分界符,執行調用之后的代碼輸出參數的值和空格,它就會回到稍外一層繼續執行。稍外一層在結束時,退回到在稍外一層繼續執行,層層推出,直到最外層結束。執行完成以后的結果就是我們上面看到的結果。
總結
以上是生活随笔為你收集整理的php递归函数及简单实例讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#窗体之整人小程序
- 下一篇: Linux下更新BIOS的方法