php递归输出问题。

function test()
{

static $count = 0;$count++;echo $count;if ($count < 10) {
    test();}
$count--;echo $count;

}
test();
这段代码的输出为123456789109876543210,前面输出1-109我可以想得通,但是后面输出的8-0是怎么输出的,按照我的想法,应该是输出123456789109就结束了,并没有循环来执行$count--;echo $count;的动作啊?请问我哪里错了,谢谢,我新手,大佬莫怪


波斯汪
浏览 692回答 2
2回答

婷婷同学_

直接跟着代码的思路逻辑一遍遍在脑海想想就知道答案的了。当你小于 10 的时候都递归运行代码,每次运行都会自增后输出,直到 $count < 10 不能满足,并执行自减输出。这会也即 9 进入 test() 自增为 10 ,然后自减。但是你别往了,因为你的代码是递归进来的,它还要一层层地出去,你进来多少层就出去多少层,因为你上面自增是一次,下面自减也是一次,所以,最终结果会和开始一样的。
打开App,查看更多内容
随时随地看视频慕课网APP