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;的动作啊?请问我哪里错了,谢谢,我新手,大佬莫怪
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
直接跟着代码的思路逻辑一遍遍在脑海想想就知道答案的了。当你小于 10 的时候都递归运行代码,每次运行都会自增后输出,直到 $count < 10 不能满足,并执行自减输出。这会也即 9 进入 test() 自增为 10 ,然后自减。但是你别往了,因为你的代码是递归进来的,它还要一层层地出去,你进来多少层就出去多少层,因为你上面自增是一次,下面自减也是一次,所以,最终结果会和开始一样的。
- 2 回答
- 0 关注
- 691 浏览
添加回答
举报
0/150
提交
取消