So erkennen Sie Fehler in PHP

不言
Freigeben: 2023-04-02 20:20:01
Original
2299 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Methode zum Erkennen von Fehlern in PHP vorgestellt, die einen gewissen Referenzwert hat. Jetzt können Freunde in Not darauf verweisen.

PHP fängt Fehler ab

  • Fehlerausgabe deaktivieren

error_reporting(0);
Nach dem Login kopieren
  • Fehlerhandler festlegen

set_error_handler('errorHandler');
Nach dem Login kopieren
  • Funktion, die am Ende des Skripts ausgeführt wird

register_shutdown_function('fatalErrorHandler');
Nach dem Login kopieren
  • Fehlerbehandlung

/**
 * @param int    $err_no      错误代码
 * @param string $err_msg  错误信息
 * @param string $err_file    错误文件
 * @param int    $err_line     错误行号
 * @return string
 */
function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0)
{
    $log = [
        '['.date('Y-m-d h-i-s').']',
        '|',
        $err_no,
        '|',
        $err_msg,
        '|',
        $err_file,
        '|',
        $err_line
    ];
    $log_path = './test.txt';
    error_log(implode(' ',$log)."\r\n",3, $log_path);
}
Nach dem Login kopieren
  • Schwerwiegende Fehler erkennen

function fatalErrorHandler() {
    $e = error_get_last();

    var_export($e);
    switch ($e['type']) {
        case 1:
            errorHandler($e['type'], $e['message'], $e['file'], $e['line']);
            break;
    }
}
Nach dem Login kopieren
class DemoClass_1
{
    public function index()
    {
        //这里发生一个警告错误,出发errorHandler
        echo $undefinedVarible;
    }
}
Nach dem Login kopieren
  • Hier ist ein Warnfehler aufgetreten, der von errorHandler erfasst wurde

$demo_1 = new DemoClass_1();
$demo_1->index();
Nach dem Login kopieren
  • Es tritt ein schwerwiegender Fehler auf, das Skript wird nicht mehr ausgeführt und löst den fatalErrorHandler aus

$demo_2 = new DemoClass_2();
$demo_2->index();
Nach dem Login kopieren

Nach dem Öffnen von test.txt lautet die Ausgabe:

[2018-06-12 05-49-11] | 8 | Undefined variable: undefinedVarible | /Users/darry/htdocs/test.php | 57
[2018-06-12 05-49-11] | 1 | Uncaught Error: Class 'DemoClass_2' not found in /Users/darry/htdocs/test.php:67
Stack trace:
#0 {main}
  thrown | /Users/darry/htdocs/test.php | 67
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Nginx SSL schnelle bidirektionale Authentifizierungskonfiguration (Skript)

Rekursion basierend auf der PHP-Datenstruktur

Über die Verwendung des Thinkphp-Verhaltens

Das obige ist der detaillierte Inhalt vonSo erkennen Sie Fehler in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!