xdebug.max_nesting_level

时间:2012-02-02 23:36:45

标签: php function loops limit xdebug

我必须运行超过5000次的功能。 我已经设置了xdebug.max_nesting_level = 10000

但它表示在firefox上加载页面有问题。

xdebug.max_nesting_level的最大限制是什么?如何解决此问题。

请提前帮助我。

2 个答案:

答案 0 :(得分:4)

max_nesting_level与您调用的许多函数的方式无关,但与您有多少嵌套级别的函数调用无关。 max_nesting_level保护以下内容:

function a()
{
    a();
}

a();

如果没有Xdebug的max_nesting_level,这将导致PHP崩溃,因为它耗尽了堆栈空间。

设置的最大限制取决于他的操作系统,但一般来说2500以上似乎都太高了。

为了确保在运行脚本期间没有命中Xdebug的max_nesting_level,您可能需要更改代码的工作方式(即,不进行嵌套或递归函数调用)。因为我不知道你的代码,我当然不能说你是否可能只是遇到了它的错误。

欢呼声, 德里克

答案 1 :(得分:1)

就像@Dreick所说,你的问题不在于嵌套。要跟踪您的问题,您必须允许显示如下所示的错误in this answer

display_errors = on
display_startup_errors = on