PHP致命错误:' 100'的最大函数嵌套级别到达,流产!在Laravel

时间:2014-10-07 07:46:23

标签: php laravel

我有两次这个错误,每次花费将近30分钟进行调试。我希望它会对某人有所帮助,因为我在互联网上找到的只是关闭xDebug的解决方案。

  

PHP致命错误:达到“100”的最大函数嵌套级别,正在中止!

3 个答案:

答案 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));

这回答了我的帮助。

https://stackoverflow.com/a/30839127/3524046

答案 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但没有帮助。无论如何,请检查您的班级名称或代码,以便正确调用函数。