请教下这个循环,我理解错在什么地方?

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:28:42
<?php
function Test()
{
static $count = 0;
$count++;
echo $count;
if ($count < 5)
{
Test();
};
$count--;
echo "<BR>".$count;
}
Test();
?>

在这里:
static $count = 0;
$count++;
echo $count;
if ($count < 5)
{
Test();
};
递归循环共执行了5次echo $count;,执行到这里就输出了12345,然后就退出了if{...},到下面的$count--;和echo "<BR>".$count;,输出了一个回车和4

答案为什么不是:
12345
4
而是:
12345
4
3
2
1
0

为什么还有后面的3210?这段代码在什么地方又返回去执行了$count--?详细是在哪里开始返回/返回到哪个地方?

因为你没有加限制条件,if执行完,还会去执行下面的操作,自然会有归零的输出,两个办法
if ($count < 5)
{
Test();
}
else
{
$count--;
echo "<BR>".$count;
}
加else

if ($count < 5)
{
Test();
exit();
}
$count--;
echo "<BR>".$count;
用exit控制程序退出,不执行后续动作