Как обойти Maximum function nesting level

WoLFiks

Не курю...
Как обойти Maximum function nesting level

Как обойти ошибку Maximum function nesting level of '100' reached, aborting! пр использовании ресурсии.
- рекурсия явно не бесконечная, просто уровней вложенности будет около 1000, может 2000...

Любые параметры могу менять. Сервер свой.
 

crocodile2u

http://vbolshov.org.ru
Нередки ситуации, когда рекурсию можно заменить итерациями. Не твой случай?
 

WoLFiks

Не курю...
ХМ ... Не то чтобы в точку, НО
Очень интересная мысль...
Попробуем помудрить.
 

phprus

Moderator
Команда форума
crocodile2u
Нередки ситуации, когда рекурсию можно заменить итерациями.
А разве рекурсию не всегда можно заменить на итерации воспользовавшись своим стеком для хранения переменных?
 

kode

never knows best
Автор оригинала: phprus
crocodile2u

А разве рекурсию не всегда можно заменить на итерации воспользовавшись своим стеком для хранения переменных?
нет, есть случаи когда без рекурсии тяжко: нужно строить километровые велосипеды


2TopicStarter
А что ты там такое делаешь? Не могу себе представить дерево такого размера
 

phprus

Moderator
Команда форума
kode
нет, есть случаи когда без рекурсии тяжко: нужно строить километровые велосипеды
Абсолютно согласен, но я писал свой ответ из-за того, что высказывание crocodile2u показалось мне несколько неверным. Помоему его лучше было переформулировать примерно так: "Нередки ситуации, когда замена рекурсии на итерации может упростить алгоритм, уменьшить его требования к стеку..."
 

WoLFiks

Не курю...
kode
Хранение цепочек составляющих ДНК...

Да плюнул уже на эти деревья и кустики....
Дерево ведь - частный случай графа. Вот как оказывается, что общим случаем все реализуется лучше.

Сейчас перекуриваю теорию графов заново.... Хотя и "не курю" ))))
 

crocodile2u

http://vbolshov.org.ru
phprus
Я по образованию физик, алгоритмов нам не преподавали. Скорее всего, ты прав.
 

agx

Программер :-)
Рекурсия в большинстве случаев нужна для обхода дерева. У тебя древовидная структура с 1000 уровнем вложенности?? Думаю, тебе стоит просто пересмотреть структуру обрабатываемых данных, сделать ее более "человеческой". Иначе выходит какой-то изврат, типа как заменить рекурсию семимерным массивом. :D
 

rixaman

Новичок
Поразительны русские форумы по программированию... простой вопрос, нет надо по умничать и поучить, но оставить без ответа.

Изменить в php.ini
xdebug.max_nesting_level = 200

Интересно, этот мой пост админы тоже удалят?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
rixaman, при чем тут вообще xdebug?

PS: приз почетного некропостера уже твой...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
fixxxer, совет то может стоящий, при наличии xdebug'a, только автору, если ты прочитал тред, советовали пересмотреть алгоритм, а не увеличивать лимит на вызовы)
 

fixxxer

К.О.
Партнер клуба
Вообще говоря, информация о том, что этот лимит берется из xdebug-а, полезнее капитанских соображений о возможности замены рекурсии итерацией.
 
Сверху