日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP 递归函数

發布時間:2024/8/1 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP 递归函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

遞歸函數即自調用函數,在函數體內部直接或間接的自己調用自己,即函數的嵌套調用就是函數本身。通常

在此類型的函數體中會附加一個條件判斷,以判斷是否需要執行遞歸調用,并且在特定的條件下終止函數的遞歸

調用動作,把目前流程的主控權交回到上一層函數執行。

總結:1.遞歸是一種函數調用自身的機制2.遞歸必須要有邊界條件,也就是遞歸出口(退出遞歸)3.遞歸前進段和遞歸返回段,也就是最后得到的值4.當邊界條件(遞歸出口)不滿足的時候,遞歸前進;當邊界條件(遞歸出口)滿足時,遞歸返回下面我們看一個簡單的遞歸示例: <?php // 聲明一個函數 用于遞歸測試 function test($n) {echo $n . "&nbsp;"; //在函數開始輸出參數的值if($n > 0) { //判斷參數是否大于0test($n - 1); //如果參數大于0則調用自己,并將參數減1后再次傳入}else{ //判斷參數不大于0echo "<------>";}echo $n . "&nbsp;"; }test(10);--------------------------------------輸出結果:10 9 8 7 6 5 4 3 2 1 0 <------>0 1 2 3 4 5 6 7 8 9 10

下面我們一步一步解釋一下:

第 1 步:執行 test(10),echo 10,因為 10 > 0,執行 test(9),后面還有沒來得及執行的 echo 10第 2 步:執行 test(9),echo 9,因為 9 > 0,執行 test(8),后面還有沒來及執行的 echo 9第 3 步:執行 test(8),echo 8,因為 8 > 0,執行 test(7),后面還有沒來得及執行的 echo 8第 4 步: 執行 test(7),echo 7,因為 7 > 0,執行 test(6),后面還有沒來得及執行的 echo 7第 5 步:執行 test(6),echo 6,因為 6 > 0,執行 test(5),后面還有沒來得及執行的 echo 6第 6 步:執行 test(5),echo 5,因為 5 > 0,執行 test(4),后面還有沒來得及執行的 echo 5第 7 步 :執行 test(4),echo 4,因為 4 > 0,執行 test(3),后面還有沒來得及執行的 echo 4第 8 步 :執行 test(3),echo 3,因為 3 > 0,執行 test(3),后面還有沒來得及執行的 echo 3第 9 步 :執行 test(2),echo 3,因為 2 > 0,執行 test(1),后面還有沒來得及執行的 echo 2第 10 步 :執行 test(1),echo 1,因為 1 > 0,執行 test(0),此時 0 > 0 不成立不再執行 test() 函數,而是

echo “<------>”,并且執行后面的 echo 0,此時函數不再調用自己,開始將流程的主控權交回給上一層函數執行,

也就是開始執行剛剛 test() 函數沒來得及輸出的最后一個 echo,整個流程如下圖所示:

在函數執行的第 1 到第 10 步,函數輸出的是綠色部分,紅色部分還沒來得及輸出就執行調用自己的操作,以此

類推,直到流程執行到不滿足調用自己的條件,輸出 “<------>”,流程開始執行前面沒來得及輸出的部分

這就像我們玩游戲一樣,打死一個怪物掉下一件寶物,但是此時還有其他怪物在等著被消滅,我們不得不消滅完

所有怪物之后在回來一個一個撿寶物

但是,可能又會有人問為什么在流程執行到不滿足調用自己的條件后下一個輸出的是 1,而不是 10呢?,如下示例:

<?php function one($num) {echo $num;two($num - 1);echo $num; }function two($num) {echo $num;three($num - 1);echo $num; }function three($num) {echo $num }one(3);-----------------------------輸出結果:32123

執行 one(3) 函數,echo 3,然后調用 two(2) 函數,注意此時還沒 echo 3

執行 two(2),echo 2,然后調用 three(1) 函數,同樣還沒 echo 2

執行 three(1) ,echo 1,不再調用其他函數

three() 函數執行結束 echo 2,則 two() 函數也執行結束,echo 3,所以,最后的輸出結果就是 3,2,1,2,3

總結

以上是生活随笔為你收集整理的PHP 递归函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。