PHP の再帰関数で return を使用すると、目的の値が正しく返されない状況が発生します。その理由を理解していないと、エラーを見つけるのが難しくなります。次の具体的な例で説明してみましょう。例:
function test($i){ $i-=4; if($i<3){ return $i; }else{ test($i); } } echo test(30);
このコードは、実行しなければ問題がないように見えますが、時間内に実行して問題が見つかったとしても、おそらく問題はないと思われます。問題がどこにあるのかわからないかもしれませんが、実際には、この関数の他の部分に問題があります。このコードの実行結果には戻り値はありません。
したがって、条件 $i<3 が満たされて return $i が返されたとしても、関数全体は値を返しません。したがって、上記の PHP 再帰関数は次のように変更できます。
function test($i){ $i-=4; if($i<3){ return $i; }else{ return test($i);//增加return,让函数返回值 } } echo test(30);
関連記事
PHP 再帰関数を効果的に使用するには? php 再帰関数の典型的な例
php 再帰関数 PHP の配列関連関数の概要
PHP 再帰関数の戻り値の使用方法の簡単な分析