增加嵌套函数调用限制

增加嵌套函数调用限制

PHP中有一个非常糟糕的限制:如果你调用一个调用a2()的函数a1(),那就调用a3 ...所以什么时候a99()调用a100()你会看到

致命错误:达到最大功能嵌套级别'100',正在中止!

有没有办法将100个嵌套调用的限制增加到500或10000?

这对我来说至关重要,因为我正在开发一个带有大量回调的基于事件的系统。


饮歌长啸
浏览 436回答 3
3回答

心有法竹

此错误消息特别来自XDebug扩展。PHP本身没有函数嵌套限制。更改php.ini中的设置:xdebug.max_nesting_level = 200或者在您的PHP代码中:ini_set('xdebug.max_nesting_level', 200);至于你真的需要改变它(即:如果有一个递归函数的替代解决方案),没有代码,我无法分辨。

蓝山帝景

你有Zend,IonCube或xDebug吗?如果是这样,那可能是你从这里得到这个错误的地方。几年前我碰到了这个问题,结果是Zend把那个限制放在那里,而不是PHP。当然,删除它会让你超过100次迭代,但最终会达到内存限制。

繁花如伊

我个人认为这是一个错误,而不是需要调整的设置。在我的代码中,这是因为我有一个类与我的一个控制器中的库名相同,它似乎把它绊倒了。输出错误并查看触发的位置。
打开App,查看更多内容
随时随地看视频慕课网APP