digui($i-1); 對於($j=1;$j"/> digui($i-1); 對於($j=1;$j">
本文
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中文網其他相關文章!