使用静态变量的php递归函数
我有:使用静态变量的php递归函数,php,recursion,Php,Recursion,我有: 功能测试() { 静态$count=0; $count++; echo$count; 如果($count
功能测试()
{
静态$count=0;
$count++;
echo$count;
如果($count<10){
test();
}
$count--;
}
$count--
在这个递归中是如何工作的
当计数最终达到10时,紧接着的
$count--
将执行。但是会发生什么呢?它会将计数从1增加到10,如果您回显最后一行$count--代码>它将从10减少到1,如:
12345678910
和$count——将使其成为10987654321
我的意思是:
function test()
{
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
test();
}
$count--;
}
功能测试()
{
静态$count=0;
$count++;
echo$count;
如果($count<10){
test();
}
回声$计数--;
}
test();
将产生123456789100987654321
我猜它将完成任何活动递归的执行(例如,如果你已经达到10级,你将得到$count减少,回到一级)-演示(自己这样做可能会告诉你:是的,我没有正确阅读问题。你赢了:)我注意到现在的增量和减量有点奇怪。但是我可以看到堆栈将如何处理它。所以当递归函数在满足条件后在堆栈中回溯时,它只跳到$count--?从它进入递归的地方回溯9次,从而减少了9次计数?
function test()
{
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
test();
}
echo $count--;
}
test();