2012-01-02 34 views

回答

3

您可以递归这样的:

function infinite($depth = 1) { 
    infinite($depth + 1); 
} 

infinite(); 

然后$depth包含递归函数内的当前水平。

你也可以拨弄debug_backtrace,但这不是很有效率,所以你应该例如不在递归的每一步执行!

+0

我建议为'$ depth'提供默认的'1',所以你可以不带参数地调用它:'function infinite($ depth = 1){...}' – meagar 2012-01-02 04:04:42

+0

@meagar:这是绝对正确的。之所以我没有在第一个地方添加这个,是因为我不确定PHP是否真的支持默认参数(并且懒得查看它)。谢谢。 – 2012-01-02 04:08:58

-1
$depth = count(debug_backtrace()); 

这会告诉你调用堆栈的长度。

+0

但不一定是该特定函数被调用了多少次。 – 2012-01-02 03:55:28

+0

Juts为'function =>'infinite''或其他类型过滤数组。 – 2012-01-02 03:57:59