Heim  >  Artikel  >  Backend-Entwicklung  >  So erkennen Sie schwerwiegende Fehler in PHP

So erkennen Sie schwerwiegende Fehler in PHP

王林
王林Original
2020-08-06 14:44:063742Durchsuche

So erkennen Sie schwerwiegende Fehler in PHP: Sie können die Funktion register_shutdown_function() verwenden, um schwerwiegende Fehler abzufangen. Die Funktion register_shutdown_function() gibt an, dass PHP am Ende des Programms ein bestimmtes Funktionsverhalten auslöst.

So erkennen Sie schwerwiegende Fehler in PHP

Verwenden Sie die Funktion register_shutdown_function(), um schwerwiegende Fehler abzufangen, was bedeutet, dass PHP am Ende des Programms ein bestimmtes Funktionsverhalten auslöst.

(Empfohlenes Tutorial: php-Grafik-Tutorial)

Syntax:

void register_shutdown_function(callable $callback[, mixed $parameter [, mixed $... ]])

Registrieren Sie einen Rückruf, der nach Abschluss der Skriptausführung oder nach Exit() aufgerufen wird. ??

Während der Ausführung des PHP-Codes ist ein Fehler aufgetreten.

  • Der PHP-Code wurde erfolgreich ausgeführt (Empfohlenes Video-Tutorial:
    Einführung in die Programmierung

    )
  • Beispiel:

  • Wir passen ein Verhalten an:
<?php
/**
 * Created by PhpStorm.
 * User: Xavier
 * Date: 2018/6/3
 * Time: 12:16
 */
class RegisterShutDownFunction
{
    /**
     * @author Xavier
     * @desc php 程序运行结束时候需要运行的函数
     */
    public static function register()
    {
        if ($error = error_get_last()) {
            // $filename 必须是一个绝对路径
            if (!defined(&#39;REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME&#39;)) {
                $filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . &#39;register_shutdown_function.log&#39;;
            } else {
                $filename = REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME;
            }
            $message = &#39;时间 : &#39; . date(&#39;Y-m-d H:i:s&#39;) . PHP_EOL;
            $message .= &#39;文件 : &#39; . $error[&#39;file&#39;] . PHP_EOL;
            $message .= &#39;行数 : &#39; . $error[&#39;line&#39;] . PHP_EOL;
            $message .= &#39;错误 : &#39; . $error[&#39;message&#39;] . PHP_EOL;
            $message .= &#39;类型 : &#39; . $error[&#39;type&#39;] . PHP_EOL . PHP_EOL;
            file_put_contents($filename, $message, FILE_APPEND);
        }
    }
}

Anwendung:

<?php
/**
 * Created by PhpStorm.
 * User: Xavier
 * Date: 2018/6/3
 * Time: 12:27
 */
 // 定义一个常量来记录程序停止后,出现错误的 LOG 日志文件
define(&#39;REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME&#39;, dirname(__FILE__) . DIRECTORY_SEPARATOR . &#39;11.log&#39;);
// 包含异常处理的类文件
include &#39;lib/RegisterShutDownFunction.php&#39;;
$registerShutDownFunction = new RegisterShutDownFunction();
// register_shutdown_function 函数必须在所有的程序执行之间注册
register_shutdown_function(array($registerShutDownFunction, &#39;register&#39;));

// 注册成功之后调用一个不存在的方法 aa();
aa();
    Fehlerprotokoll:
  • 时间 : 2018-06-03 04:56:02
    文件 : /Users/x/www/php/exception/2.php
    行数 : 17
    错误 : Uncaught Error: Call to undefined function aa() in /Users/x/www/php/exception/2.php:17
    Stack trace:
    #0 {main}
      thrown
    类型 : 1

Das obige ist der detaillierte Inhalt vonSo erkennen Sie schwerwiegende 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