Apabila bekerja dengan skrip yang mengembalikan respons JSON, menghadapi ralat 'Allowed Memory Size Exhausted' boleh menjadi kebimbangan . Untuk mengelakkan peningkatan had memori, anda mungkin ingin memaklumkan kepada pengguna bahawa permintaan mereka melebihi ambang memori.
Dalam PHP, anda tidak boleh menangkap ralat maut secara langsung seperti keletihan saiz memori. Walau bagaimanapun, anda boleh menggunakan register_shutdown_function untuk mendaftarkan panggilan balik yang menyemak error_get_last().
<code class="php">register_shutdown_function(function() { $error = error_get_last(); if ($error) { echo 'An error occurred: ' . $error['message']; } });</code>
Untuk mengelakkan ralat maut daripada ranap skrip, anda perlu mengendalikan output yang dihasilkan oleh kod yang menyinggung perasaan. Anda boleh menggunakan operator @ (tidak disyorkan) atau tetapkan ini_set('display_errors', false).
<code class="php">ini_set('display_errors', false); error_reporting(-1); set_error_handler(function($code, $string, $file, $line){ throw new ErrorException($string, null, $code, $file, $line); }); register_shutdown_function(function() { $error = error_get_last(); if ($error) { echo 'Memory limit exhausted. Please try reissuing the request with different parameters.'; } });</code>
Setelah menjalankan skrip ini dengan penggunaan memori yang berlebihan, ia akan mengeluarkan mesej ralat yang sesuai, memberitahu pengguna untuk membuat pelarasan untuk mengurangkan penggunaan memori.
Pastikan error_reporting() tinggi untuk memastikan ralat lain masih kelihatan. Untuk ralat bukan maut, pertimbangkan untuk menggunakan set_error_handler() dan ErrorException untuk pengendalian ralat.
Atas ialah kandungan terperinci Cara Menangani Ralat \'Saiz Memori yang Dibenarkan Habis\' dalam PHP dengan Gangguan Minimum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!