Dieser Artikel stellt hauptsächlich die von PHP implementierte Fehlerbehandlungskapselungsklasse vor und analysiert PHP-Fehlerbeurteilung, Eingabeaufforderungen und protokollbezogene Betriebsfähigkeiten in Form spezifischer Beispiele.
Die Beispiele in diesem Artikel beschreiben die von PHP implementierte Kapselungsklasse zur Fehlerbehandlung. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1 Erstellen Sie die Datei MyErrorHandler.php
Der Code lautet wie folgt:
<?php class MyErrorHandler { public $message; public $filename; public $line; public $vars = array(); protected $_noticeLog = 'F:\root\noticeLog.log'; public function __construct ($message,$filename,$line,$vars) { $this->message = $message; $this->filename = $filename; $this->line = $line; $this->vars = $vars; } public static function deal ($errno,$errmsg,$filename,$line,$vars) { $self = new self($errno,$errmsg,$filename,$line,$vars); switch ($errno) { case E_USER_ERROR: return $self->dealError(); break; case E_USER_WARNING: case E_WARNING: return $self->dealWarning(); break; case E_NOTICE: case E_USER_NOTICE: return $self->dealNotice(); default: return false; } } /** * 致命的错误 */ public function dealError() { ob_start(); debug_print_backtrace(); $backtrace = ob_get_flush(); $errorMsg = <<<EOF 出现了致命的错误,如下: 产生错误的文件:{$this->filename} 产生错误的信息:{$this->message} 产生错误的行号:{$this->line} 追踪信息{$backtrace} EOF; error_log($errorMsg,1,'279921301@qq.com','From:php[error错误日志]'); exit(1); } /** * 警告的错误 */ public function dealWarning() { $errorMsg = <<<EOF 出现了警告的错误,如下: 产生警告的文件:{$this->filename} 产生警告的信息:{$this->message} 产生警告的行号:{$this->line} EOF; return error_log($errorMsg,1,'279921301@qq.com','From:php[error警告日志]'); } /** * 通知的错误 */ public function dealNotice() { $datetime = date('Y-m-d H:i:s'); $errorMsg = <<<EOF 出现了通知的错误,如下: 产生通知的文件:{$this->filename} 产生通知的信息:{$this->message} 产生通知的行号:{$this->line} 产生通知的时间:{$datetime} EOF; return error_log($errorMsg,3,$this->_noticeLog); } }
2. Testcode
<?php include "MyErrorHandler.php"; //报告所有 PHP 错误 error_reporting(-1); //不显示错误信息 ini_set('display_errors',0); set_error_handler(array('MyErrorHandler','deal')); echo $test; //Notice错误 settype($var,'test'); //警告错误 test();
Hinweis: Für den E-Mail-Versand muss die Mail-Funktion lokal konfiguriert werden. Weitere Informationen finden Sie im vorherigen Artikel „PHP So konfigurieren Sie sendmail unter Windows und verwenden die Funktion mail() „So senden Sie E-Mails“.
Das obige ist der detaillierte Inhalt vonWer kann die in PHP implementierte Kapselungsklasse für die Fehlerberichterstattung erklären?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!