增加嵌套函数调用限制
PHP中有一个非常糟糕的限制:如果你调用某个调用a2()的函数a1(),那么调用a3...所以什么时候会打电话你会看到a99()
a100()
致命错误:已达到最大函数嵌套级别“100”,正在中止!
有没有办法将 100 个嵌套调用的限制增加到 500 或 10000?
这对我来说至关重要,因为我正在开发一个基于事件的系统,其中包含很多回调。
PHP中有一个非常糟糕的限制:如果你调用某个调用a2()的函数a1(),那么调用a3...所以什么时候会打电话你会看到a99()
a100()
致命错误:已达到最大函数嵌套级别“100”,正在中止!
有没有办法将 100 个嵌套调用的限制增加到 500 或 10000?
这对我来说至关重要,因为我正在开发一个基于事件的系统,其中包含很多回调。
此错误消息专门来自 XDebug 扩展。PHP本身没有函数嵌套限制。更改 php 中的设置.ini:
xdebug.max_nesting_level = 200
或在您的 PHP 代码中:
ini_set('xdebug.max_nesting_level', 200);
至于你是否真的需要改变它(即:如果有递归函数的替代解决方案),如果没有代码,我就无法分辨。
您是否安装了Zend,IonCube或xDebug?如果是这样,那可能是您从哪里得到此错误。
几年前我遇到了这个问题,最终是Zend把这个限制放在那里,而不是PHP。当然,删除它会让你超过100次迭代,但你最终会达到内存限制。