ホームページ  >  記事  >  バックエンド開発  >  PHP 再帰関数の return が目的の値を正しく返せない場合がある

PHP 再帰関数の return が目的の値を正しく返せない場合がある

PHP中文网
PHP中文网オリジナル
2017-03-15 15:42:591740ブラウズ

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 再帰関数の戻り値の使用方法の簡単な分析

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