为了账号安全,请及时绑定邮箱和手机立即绑定

增加嵌套函数调用限制

增加嵌套函数调用限制

PHP
饮歌长啸 2019-08-12 18:32:59
增加嵌套函数调用限制PHP中有一个非常糟糕的限制:如果你调用一个调用a2()的函数a1(),那就调用a3 ...所以什么时候a99()调用a100()你会看到致命错误:达到最大功能嵌套级别'100',正在中止!有没有办法将100个嵌套调用的限制增加到500或10000?这对我来说至关重要,因为我正在开发一个带有大量回调的基于事件的系统。
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

此错误消息特别来自XDebug扩展。PHP本身没有函数嵌套限制。更改php.ini中的设置

xdebug.max_nesting_level = 200

或者在您的PHP代码中:

ini_set('xdebug.max_nesting_level', 200);

至于你真的需要改变它(即:如果有一个递归函数的替代解决方案),没有代码,我无法分辨。


查看完整回答
反对 回复 2019-08-12
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

你有Zend,IonCube或xDebug吗?如果是这样,那可能是你从这里得到这个错误的地方。

几年前我碰到了这个问题,结果是Zend把那个限制放在那里,而不是PHP。当然,删除它会让你超过100次迭代,但最终会达到内存限制。


查看完整回答
反对 回复 2019-08-12
?
繁花如伊

TA贡献2012条经验 获得超12个赞

我个人认为这是一个错误,而不是需要调整的设置。在我的代码中,这是因为我有一个类与我的一个控制器中的库名相同,它似乎把它绊倒了。

输出错误并查看触发的位置。


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 435 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信