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 「<-->」,並且執行後面的 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遞回函數用法的詳細內容,更多請關注TW511.COM其它相關文章!