Hay un límite muy malo en PHP: si llama a alguna función a1 () que llama a2 (), llama a a3 ... así que cuando a99()
llame a100()
verá
Error fatal: nivel máximo de anidación de la función de '100' alcanzado, ¡abortando!
¿Hay alguna forma de aumentar el límite de 100 llamadas de anidación a 500 o 10000?
Esto es crítico para mí porque estoy desarrollando un sistema basado en eventos con muchas devoluciones de llamada.
Respuestas:
Este mensaje de error proviene específicamente de la extensión XDebug. PHP en sí mismo no tiene una función de límite de anidamiento. Cambie la configuración en su php.ini:
o en tu código PHP:
En cuanto a si realmente necesita cambiarlo (es decir: si hay una solución alternativa a una función recursiva), no puedo decirlo sin el código.
fuente
xdebug.max_nesting_level = 100
opción en su php.ini, simplemente péguela.¿Tiene instalado Zend, IonCube o xDebug? Si es así, es probable que sea de donde obtenga este error.
Me encontré con esto hace unos años, y terminó siendo Zend poniendo ese límite allí, no PHP. Por supuesto, eliminarlo te permitirá superar las 100 iteraciones, pero eventualmente alcanzarás los límites de memoria.
fuente
Personalmente, sugeriría que se trata de un error en lugar de una configuración que debe ajustarse. En mi código fue porque tenía una clase que tenía el mismo nombre que una biblioteca dentro de uno de mis controladores y parecía tropezar.
Produzca errores y vea dónde se desencadena esto.
fuente