Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menangani Ralat \'Saiz Memori yang Dibenarkan Habis\' dalam PHP dengan Gangguan Minimum

Cara Menangani Ralat \'Saiz Memori yang Dibenarkan Habis\' dalam PHP dengan Gangguan Minimum

Patricia Arquette
Patricia Arquetteasal
2024-10-24 11:48:29327semak imbas

How to Handle 'Allowed Memory Size Exhausted' Errors in PHP with Minimal Disruption

Mengendalikan Ralat 'Allowed Memory Size Exhausted' dalam PHP

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.

Menangkap Ralat Maut

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>

Mengurus Output Ralat

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).

Contoh

<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.

Pertimbangan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn