digui($i-1); for($j=1;$j"/> digui($i-1); for($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." "; }
Call $this->digui2(3);
Result
3 2 1 0 <-->0 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 を出力するには、
3 つ (1 ) を実行し、他の関数を呼び出さずに 1 を直接出力します。
この時点では、two() 関数がまだ実行されていないだけではないでしょうか。 two() 関数の実行後、つまり次の 2 を出力し、次に one() 関数の未完了部分の実行を開始します。つまり、次の 3 を出力します。この時点ですべての関数が完了しています。処刑された。
その後、出力結果は次のようになります:
3 2 1 2 3
関連推奨事項:
以上がPHP 再帰関数のサンプル分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。