我有两次这个错误,每次花费将近30分钟进行调试。我希望它会对某人有所帮助,因为我在互联网上找到的只是关闭xDebug的解决方案。
PHP致命错误:达到“100”的最大函数嵌套级别,正在中止!
答案 0 :(得分:1)
这件事发生在我身上,因为我不小心将两个班级互相注入。
class Foo(Bar $bar){}
class Bar(Foo $foo){}
$bar = new Bar(new Foo(new bar(new Foo(...))));
之所以没有看到这是因为Laravel IOC。因此,用于实例化类的synax将类似于:
$bar = new Bar(Foo $foo);
答案 1 :(得分:0)
问题是由默认的xdebug.max_nesting_level引起的,这是100。
在Laravel 5.1中将以下行添加到bootstrap / autoload.php
ini_set('xdebug.max_nesting_level', 120);
.........
define('LARAVEL_START', microtime(true));
这回答了我的帮助。
答案 2 :(得分:-1)
这是我的问题。
我有一个服务类,它是codeigniter中的librarie。像这样有一个函数。
class PaymentService {
private $CI;
public function __construct() {
$this->CI =& get_instance();
}
public function procss(){
// lots of Ci referencing here ...
}
我的控制器如下:
$this->load->library('PaymentService');
$this->process_(); // see I got his wrong instead it should be like below
$this->Payment_service->process(); //the library class name
然后我一直在收到超出错误的消息。但我确实禁用了XDebug但没有帮助。无论如何,请检查您的班级名称或代码,以便正确调用函数。