Maison > Article > développement back-end > Comment détecter les erreurs fatales en php
Comment détecter les erreurs fatales en PHP : Vous pouvez utiliser la fonction register_shutdown_function() pour détecter les erreurs fatales. La fonction register_shutdown_function() indique que PHP déclenche un certain comportement de fonction à la fin du programme.
Utilisez la fonction register_shutdown_function() pour capturer les erreurs fatales, ce qui signifie que PHP déclenche un certain comportement de fonction à la fin du programme.
(Tutoriel recommandé : Tutoriel graphique php )
Syntaxe :
void register_shutdown_function(callable $callback[, mixed $parameter [, mixed $... ]])
Enregistre un rappel, qui sera exécuté lorsque le script sera terminé ou quitté () est appelé plus tard.
Paramètre :
rappel : abandonner le rappel pour être enregistré
paramètre : peut être transmis Entrez des paramètres supplémentaires pour transmettre les paramètres à la fonction d'abandon
Il existe quatre situations lorsque le programme se termine :
Une erreur s'est produite lors de l'exécution du code php
Le code php a été exécuté avec succès
Le code php a expiré
La page a été forcée de s'arrêter par l'utilisateur
(Tutoriel vidéo recommandé : Introduction à la programmation)
Exemple :
Nous personnalisons un comportement :
<?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('REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME')) { $filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'register_shutdown_function.log'; } else { $filename = REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME; } $message = '时间 : ' . date('Y-m-d H:i:s') . PHP_EOL; $message .= '文件 : ' . $error['file'] . PHP_EOL; $message .= '行数 : ' . $error['line'] . PHP_EOL; $message .= '错误 : ' . $error['message'] . PHP_EOL; $message .= '类型 : ' . $error['type'] . PHP_EOL . PHP_EOL; file_put_contents($filename, $message, FILE_APPEND); } } }
Application :
<?php /** * Created by PhpStorm. * User: Xavier * Date: 2018/6/3 * Time: 12:27 */ // 定义一个常量来记录程序停止后,出现错误的 LOG 日志文件 define('REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME', dirname(__FILE__) . DIRECTORY_SEPARATOR . '11.log'); // 包含异常处理的类文件 include 'lib/RegisterShutDownFunction.php'; $registerShutDownFunction = new RegisterShutDownFunction(); // register_shutdown_function 函数必须在所有的程序执行之间注册 register_shutdown_function(array($registerShutDownFunction, 'register')); // 注册成功之后调用一个不存在的方法 aa(); aa();
Journal des erreurs :
时间 : 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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!