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;的动作啊?请问我哪里错了,谢谢,我新手,大佬莫怪
直接跟着代码的思路逻辑一遍遍在脑海想想就知道答案的了。当你小于 10 的时候都递归运行代码,每次运行都会自增后输出,直到 $count < 10 不能满足,并执行自减输出。这会也即 9 进入 test() 自增为 10 ,然后自减。但是你别往了,因为你的代码是递归进来的,它还要一层层地出去,你进来多少层就出去多少层,因为你上面自增是一次,下面自减也是一次,所以,最终结果会和开始一样的。