Rumah >pembangunan bahagian belakang >tutorial php >Bolehkah PHP Menangani Ralat Keletihan Memori Tanpa Melebihi Had Memori?
Dalam PHP, mengendalikan ralat keletihan memori memerlukan pendekatan pelbagai rupa. Walaupun meningkatkan had ingatan dengan ini_set() mungkin kelihatan pembetulan pantas, ia tidak selalunya boleh dilaksanakan atau diingini.
Satu kaedah yang disyorkan melibatkan penggunaan register_shutdown_function() bersama-sama dengan error_get_last(). Ini membolehkan anda menyemak ralat semasa penutupan skrip dan menangkap nilai nol jika tiada ralat berlaku.
<code class="php">register_shutdown_function(function(){ $error = error_get_last(); if(null !== $error) { echo 'Caught at shutdown'; } });</code>
Dalam skrip get laluan anda, pertimbangkan untuk menggunakan blok cuba/tangkap untuk menangkap ralat maut:
<code class="php">try { while(true) { $data .= str_repeat('#', PHP_INT_MAX); } } catch(\Exception $exception) { echo 'Caught in try/catch'; }</code>
Walau bagaimanapun, dalam contoh ini, objek ErrorException tidak dibuang sepenuhnya disebabkan oleh penamatan skrip pramatang.
Akhir sekali, lumpuhkan paparan ralat dengan menetapkan display_errors kepada palsu dan semak tatasusunan ralat dalam fungsi penutupan kepada pastikan punca ralat dan balas dengan sewajarnya.
Teknik ini menyediakan cara yang selamat dan fleksibel untuk menangani ralat keletihan memori dalam PHP tanpa menggunakan peningkatan had memori yang berlebihan.
Atas ialah kandungan terperinci Bolehkah PHP Menangani Ralat Keletihan Memori Tanpa Melebihi Had Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!