digui($i-1);            for($j=1;$j"/> digui($i-1);            for($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." ";
    }

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再帰関数呼び出しの説明

PHPを実装する3つの方法の分析再帰関数

以上がPHP 再帰関数のサンプル分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。