digui($i-1);            對於($j=1;$j"/> digui($i-1);            對於($j=1;$j">

首頁  >  文章  >  後端開發  >  php遞歸函數實例分析

php遞歸函數實例分析

小云云
小云云原創
2018-03-06 11:38:521789瀏覽

本文

   public function digui($i)
    {

        if($i=='1'){
            echo  "*" ;
            echo "<br>";
            return ;
        }else{
            $this->digui($i-1);
            for($j=1;$j<=$i;$j++){
                echo  "*" ;
            }
            echo "<br>";
        }
    }
 调用 $this->digui(3);
结果
*
**
***

  function digui2($n){
        echo $n." ";
        if($n>0){
            $this-> digui2($n-1);
        }else{
            echo "<-->";
        }
        echo $n." ";
    }

 呼叫$this->digui2(3);

結果

3 2 1 0 71fb34173e4ee87dab1f85dc1c283a440 1 2 3

遞歸函數執行解剖實例(轉載別人的)

看如下程式碼:

<?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);
?>

以上程式碼對test()函數進行分解操作,我們思考:
執行one(3)函數的時候,同test()函數一樣,首先要輸出3,然後呼叫two(2)函數,
注意,此時還沒有輸出下面的3,
接著走,執行two(2)函數,輸出2,調用three(1)函數,同樣,這裡沒有來得及輸出下面的2,
執行three(1),直接輸出1,不在調用其它函數,
此時,我們想剛剛的two()函數是不是還沒執行完,好,接著執行two()函數沒有完成的部分,two()函數執行完之後,也就是輸出下面的2,然後開始執行one()函數沒有執行完的部分,也就是輸出下面的3,此時所有函數都執行完畢。
那麼,輸出結果是:
3 2 1 2 3

相關推薦:

php遞迴函數詳解

php遞迴函數的呼叫講解

php遞迴函數實作的三種方式分析

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

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