ホームページ  >  記事  >  バックエンド開発  >  PHPの再帰関数に関する質問

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

WBOY
WBOYオリジナル
2016-06-20 12:51:261142ブラウズ

<?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);

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

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