Ada satu batasan yang sangat buruk di PHP: jika Anda memanggil beberapa fungsi a1 () yang memanggil a2 (), yang memanggil a3 ... jadi ketika a99()
akan memanggil a100()
Anda akan melihat
Kesalahan fatal: Level maksimal fungsi bersarang '100' tercapai, batal!
Apakah ada cara untuk meningkatkan batas 100 panggilan bersarang menjadi 500 atau 10.000?
Ini penting bagi saya karena saya sedang mengembangkan sistem berbasis acara dengan banyak panggilan balik.
Jawaban:
Pesan kesalahan ini datang khusus dari ekstensi XDebug. PHP sendiri tidak memiliki batas fungsi nesting. Ubah pengaturan di php.ini Anda:
atau dalam kode PHP Anda:
Adapun jika Anda benar-benar perlu mengubahnya (yaitu: jika ada solusi alternatif untuk fungsi rekursif), saya tidak bisa mengatakannya tanpa kode.
sumber
xdebug.max_nesting_level = 100
opsi ini di php.ini, cukup tempelkan di.Apakah Anda sudah menginstal Zend, IonCube, atau xDebug? Jika demikian, dari situlah Anda mendapatkan kesalahan ini.
Saya mengalami ini beberapa tahun yang lalu, dan akhirnya menjadi Zend menetapkan batas itu, bukan PHP. Tentu saja menghapusnya akan membiarkan Anda melewati 100 iterasi, tetapi Anda akhirnya akan mencapai batas memori.
sumber
Secara pribadi saya akan menyarankan ini adalah kesalahan yang bertentangan dengan pengaturan yang perlu disesuaikan. Dalam kode saya itu karena saya memiliki kelas yang memiliki nama yang sama dengan perpustakaan di dalam salah satu pengendali saya dan sepertinya membuatnya tersandung.
Keluarkan kesalahan dan lihat di mana ini dipicu.
sumber