Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah PHP memaparkan ralat selepas skrip selesai dimuatkan?

Saya telah menggunakan:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

Pada permulaan kod saya. Walau bagaimanapun, mesej ralat dipaparkan secara langsung dalam output (terdapat banyak daripadanya, jadi anda tidak dapat mencari ralat dengan baik).

Bagaimana untuk memaparkan semua ralat yang berlaku selepas skrip dimuatkan?

P粉585541766P粉585541766181 hari yang lalu385

membalas semua(1)saya akan balas

  • P粉521697419

    P粉5216974192024-04-04 00:03:03

    Anda boleh menggunakan pengendali ralat/pengecualian dengan pemusnah. Pengendali menangkap ralat dan pemusnah memaparkan ralat yang ditangkap di bahagian paling bawah halaman.

    class ErrorHandler {
        private static $instance = null;
        private static $errors = [];
        
        public static function Init() {
            if(!self::$instance) {
                self::$instance = new self;
                
                set_error_handler(function($errno, $errstr, $errfile, $errline){
                    self::$errors[] = new ErrorException($errstr, 0, $errno, $errfile, $errline);
                });
                
                set_exception_handler(function($ex){
                    self::$errors[] = $ex;
                });
            }
        }
        
        function __destruct(){
            foreach(self::$errors as $errstr)
                echo $errstr, '
    '; } } ErrorHandler::Init();

    balas
    0
  • Batalbalas