用静态变量PHP解释递归函数

时间:2017-05-30 18:08:06

标签: php recursion static-variables

请帮助我理解这个例子吗?
为什么要打印" 10"十次?为什么不0 1 2 3 4 5 6 7 8 9?

<?php
function test()
{
    static $count = 0;
    $count++;
    if ($count < 10) {
        test();
    }
    echo "\n$count";
}
test();

1 个答案:

答案 0 :(得分:2)

如果它小于10则递归并且不输出,当它为10时,它会落到echo并且在每次退出时递归的10次打印10次。

如果在递归之前echo,它将按照您的描述工作。此外,您需要在增加之前输出,否则您将无法获得0

function test()
{
    static $count = 0;
    echo "\n$count";

    $count++;
    if ($count < 10) {
        test();
    }

}
test();