Existe um limite muito ruim no PHP: se você chamar alguma função a1 () que chama a2 (), que chama a3 ... então quando a99()
vai ligar, a100()
você verá
Erro fatal: nível máximo de aninhamento de função de '100' atingido, abortando!
Existe alguma maneira de aumentar o limite de 100 chamadas de aninhamento para 500 ou 10000?
Isso é crítico para mim, porque estou desenvolvendo um sistema baseado em eventos com muitos retornos de chamada.
Respostas:
Esta mensagem de erro vem especificamente da extensão XDebug. O próprio PHP não possui um limite de aninhamento de função. Mude a configuração no seu php.ini:
ou no seu código PHP:
Quanto a se você realmente precisa alterá-lo (ou seja: se houver uma solução alternativa para uma função recursiva), não sei dizer sem o código.
fonte
xdebug.max_nesting_level = 100
opção no php.ini, cole-a.Você tem o Zend, IonCube ou xDebug instalado? Nesse caso, provavelmente é de onde você está recebendo esse erro.
Eu me deparei com isso há alguns anos atrás, e acabou sendo o Zend colocando esse limite lá, não o PHP. É claro que removê-lo permitirá que você ultrapasse as 100 iterações, mas acabará atingindo os limites de memória.
fonte
Pessoalmente, sugiro que seja um erro, em oposição a uma configuração que precisa ser ajustada. No meu código, era porque eu tinha uma classe que tinha o mesmo nome de uma biblioteca dentro de um dos meus controladores e parecia desarmar.
Erros de saída e veja onde isso está sendo acionado.
fonte