Heim >Backend-Entwicklung >PHP-Tutorial >So erkennen Sie Fehler in PHP

So erkennen Sie Fehler in PHP

不言
不言Original
2018-07-07 16:04:332373Durchsuche

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);
  • Fehlerhandler festlegen

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

register_shutdown_function('fatalErrorHandler');
  • 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);
}
  • 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;
    }
}
class DemoClass_1
{
    public function index()
    {
        //这里发生一个警告错误,出发errorHandler
        echo $undefinedVarible;
    }
}
  • Hier ist ein Warnfehler aufgetreten, der von errorHandler erfasst wurde

$demo_1 = new DemoClass_1();
$demo_1->index();
  • 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 Ö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

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!

Stellungnahme:
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