ホームページ >バックエンド開発 >PHPチュートリアル >PHP 再帰関数の戻り値の正しい使用法を深く理解する

PHP 再帰関数の戻り値の正しい使用法を深く理解する

WBOY
WBOYオリジナル
2016-07-25 08:51:291642ブラウズ
この記事では、PHPの再帰関数についての理解を深めるために、PHPの再帰関数における戻り値の正しい使い方と、PHPの再帰関数で戻り値を使用する際に注意すべき点について紹介します。

php再帰関数の戻り値

例、PHPの再帰関数の戻り値の書き方。

コードをコピー コード例: 0) { $n--; sum($n,$s) を返します。 }それ以外{ $s を返します。 } } $sum = 0; エコー合計(5,$sum);

PHP の再帰関数を使用する場合、PHP が値を再帰的に返すときに問題が発生します。 通常、問題は再帰関数の戻り値にあります。

元のphpの再帰関数の例:

コードをコピー コード例:

上記のコードでは、else に問題があります。ここで実行されるテストには戻り値がありません。 $i

上記の PHP 再帰戻り値関数に次の変更を加えます。

コードをコピー コード例:

2. PHP 再帰関数の理解

再帰関数は、関数本体内で直接または間接的に自分自身を呼び出す関数ですが、条件が満たされた場合、その関数自体が呼び出されます。条件が満たされない場合、この関数の自己呼び出しは終了し、現在のプロセスは実行のために上位層関数に制御が返されます。

例:

コードをコピー コード例: 0){ テスト($n-1); }それ以外{ エコー「」; } echo $n."  " } テスト(2) ?>

この例の最終出力は 2 1 00 1 2

分析: 最初のステップは、test(2)、echo 2 を実行し、次に 2>0 であるため、test(1) を実行することです。まだ実行する時間がありません。 2 番目のステップでは、テスト (1)、エコー 1 を実行し、次に 1>0 であるため、テスト (0) を実行します。実行する時間がなかったエコー 1 もあります。 2 番目のステップでは、test(0)、echo 0、execute test(0)、echo 0 を実行します。この時点では、0>0 の条件は満たされませんが、test() 関数は実行されません。 」が実行され、以下の手順が実行されます。 echo 0 この時点で、関数はそれ自体を呼び出すことはなくなり、実行のために上位層の関数にプロセスの制御を返し始めます。つまり、すべての test() 関数が持っていなかった最後のエコーの実行を開始します。出力するまでの時間 0 のレベルは 1 つまり、出力 1 1 の上位層は 2、つまり出力 2 2 にはその上に層がないため、出力内容は 2 1 0 になります 0 1 2

3. PHP 再帰関数で戻り値を使用する際に注意すべき点は何ですか?

PHP の再帰関数で return を使用するときに、目的の値が正しく返されない場合はどうすればよいですか?

例:

コードをコピー コード例: 関数テスト($i){ $i-=4; if($i上記のコードを実行すると、この関数のelseに問題があります。このコードの実行結果には戻り値はありません。 $i

上記の PHP 再帰関数に次の変更を加えます。

コードをコピー コード例: 関数テスト($i){ $i-=4; if($iこのようにして、phpの再帰関数を呼び出すと、必要な値を返すことができます。


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