ホームページ >バックエンド開発 >PHPチュートリアル >PHP 再帰アルゴリズムの簡素化
再帰関数は、関数本体内で直接または直接呼び出す自己呼び出し関数ですが、自己呼び出しの条件を設定する必要があり、条件が満たされていない場合は関数自体が呼び出されます。と説明すると、この関数の自己呼び出しが停止され、現在のプロセスの制御が上位関数に返されて実行されます。このように説明してもまだわかりにくいかもしれません。
たとえば、次のコード:
function test ($n){ echo $n." "; if($n>0){ test($n-1); }else{ echo ""; } echo $n." " } test(2)
この例の最終的な出力結果は 2 1 05fb6f3beb31540706eb26a1cd1069f9d0 1 2 です
出力がこのようになる理由を説明します
最初のステップは次のとおりです。 test(2) を実行し、echo 2 を実行します。2>0 であるため、test(1) を実行します。実行する時間がない echo 2 がまだあります。2 番目のステップは、test(1) を実行し、echo 1 を実行します。 1>0、test(0) の実行、同様に、実行する時間がなかった echo 1 があります。3 番目のステップは、test(0) の実行、echo 0、test(0) の実行、echo 0 です。時間になると、0>0の条件が満たされなくなり、test()関数は実行されなくなりますが、echo ""となり、後続のecho 0が実行されます
これで、関数は自分自身を呼び出すことがなくなり、プロセスの制御を実行のために上位層関数に返します。つまり、関数は今すべての test() の実行を開始します。関数には最後のエコーを出力する時間がありませんでした。0 より上の層は 1 であることを意味します。 1 を出力します。1 の上の層は 2 です。これは、2 を出力することを意味します。2 には層がないため、出力内容は 2 1 0<–> ;0 1 2
関連書籍:
php 再帰アルゴリズムphp 再帰アルゴリズム: php 再帰アルゴリズム PHP ツリー - 再帰は必要ありません: /*** 親ノード ツリーを作成します
arrayphp 再帰アルゴリズム よく使用されるアルゴリズムPHP インタビューphp 再帰アルゴリズム:php 再帰アルゴリズム PHP インタビューの一般的なアルゴリズム...
PHP WeChat レッドエンベロープに基づく php 再帰アルゴリズム アルゴリズムのディスカッションphp 再帰アルゴリズム: PHP WeChat レッドエンベロープに基づく PHP 再帰アルゴリズムアルゴリズムのディスカッション: 思いつきで、同窓会 WeChat グループに赤い封筒を送りました。赤い封筒の総額を 10 元に設定し、28 人がランダムに受け取れるようにサポートしました。 ...
以上がPHP 再帰アルゴリズムの簡素化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。