В PHP есть одно очень плохое ограничение: если вы вызываете некоторую функцию a1 (), которая вызывает a2 (), которая вызывает a3 ... поэтому, когда a99()
вы вызовете, a100()
вы увидите
Неустранимая ошибка: достигнут максимальный уровень вложенности функций «100», прерывание!
Есть ли способ увеличить лимит в 100 вызовов вложенности до 500 или 10000?
Для меня это критично, потому что я разрабатываю систему, основанную на событиях, с множеством обратных вызовов.
Ответы:
Это сообщение об ошибке поступает специально от расширения XDebug. Сам PHP не имеет ограничения на вложение функций. Измените настройку в вашем php.ini:
или в вашем PHP-коде:
Что касается того, действительно ли вам нужно его изменить (например, если есть альтернативное решение рекурсивной функции), я не могу сказать без кода.
источник
xdebug.max_nesting_level = 100
опции в вашем php.ini, просто вставьте ее.У вас установлен Zend, IonCube или xDebug? Если да, то, вероятно, вы получили эту ошибку.
Я столкнулся с этим несколько лет назад, и это закончилось тем, что Zend установил это ограничение, а не PHP. Конечно, его удаление позволит вам пройти 100 итераций, но в конечном итоге вы достигнете пределов памяти.
источник
Лично я бы предположил, что это ошибка, а не настройка, которую нужно отрегулировать. В моем коде это было потому, что у меня был класс с тем же именем, что и у библиотеки в одном из моих контроллеров, и это, похоже, его сбивало.
Выведите ошибки и посмотрите, где это срабатывает.
источник