ホームページ > バックエンド開発 > PHPチュートリアル > PHPの再帰関数に関する質問

PHPの再帰関数に関する質問

WBOY
リリース: 2016-06-20 12:51:26
オリジナル
1175 人が閲覧しました

<?phpfunction draw($total,$line=1,$result="a1"){    echo "<script>alert('$total,$line')</script>";	if($line>$total){        return;    }    else{        $line++;        //echo $result;        echo "<script>alert('draw1($total,$line,$result)')</script>";        draw($total,$line,$result);        echo "<script>alert('draw2($total,$line,$result)')</script>";	}	echo $result;}draw(3);?>
ログイン後にコピー

ステートメント内で関数draw(3)が実行され、if($line>$total){return;}echoが実行されると、3つのメッセージdraw2(3,4,a1)-が表示されます。 ->draw2 (3,3,a1)-->draw2(3,2,a1) が終了すると、return が発生した後に $line が 1 減算されるのはなぜですか?


ディスカッションへの返信 (解決策)

彼は変わっていないので理由はありません

function draw($total,$line=1,$result="a1"){    echo "<script>alert('$total,$line')</script>";    if($line>$total){        return;    }    else{        $line++;        //echo $result;        echo "<script>alert('draw1($total,$line,$result)')</script>";echo "递归前 line = $line\n";        draw($total,$line,$result);echo "递归后 line = $line\n";        echo "<script>alert('draw2($total,$line,$result)')</script>";    }    echo $result;}draw(3);
ログイン後にコピー

ありがとうございます。再帰の原理はまだ理解できていないと思うので、詳しく調べてみます

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート