首頁 >後端開發 >PHP問題 >PHP遞歸函數用法

PHP遞歸函數用法

Guanhui
Guanhui原創
2020-06-06 10:08:042377瀏覽

PHP遞歸函數用法

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),echo 10,然後因為10>0,執行test(9) ,後面還有沒來得及執行的echo 10

第二步,執行test(9),echo 9,然後因為9>0,執行test(8),同樣後面還有來得及執行的echo 9

第三步,執行test(8),echo 8,然後因為8>0,執行test(7),同樣後面還有沒來得及執行的echo 8

第四步,執行test(7),echo 7,然後因為7>0,執行test(6),同樣後面還有沒來得及執行的echo 7

第五步,執行test(6),echo 6,然後因為6>0,執行test(5),同樣後面還有來不及執行的echo 6

...........

第十步,執行test(0),echo 0,此時0>0的條件不滿足,不在執行test()函數,而是echo “71fb34173e4ee87dab1f85dc1c283a44”,並且執行後面的echo 0

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

推薦教學:《PHP教學



#

以上是PHP遞歸函數用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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