Cet article présente principalement la méthode de détection des erreurs en PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer.
Désactiver la sortie d'erreur
error_reporting(0);
Définir le gestionnaire d'erreurs
set_error_handler('errorHandler');
fonction à exécuter à la fin du script
register_shutdown_function('fatalErrorHandler');
Gestion des erreurs
/** * @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); }
Détecter les erreurs fatales
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; } }
Une erreur d'avertissement s'est produite ici et a été capturée par errorHandler
$demo_1 = new DemoClass_1(); $demo_1->index();
Une erreur fatale se produit et le script s'arrête et déclenche fatalErrorHandler
$demo_2 = new DemoClass_2(); $demo_2->index();
Après avoir ouvert test.txt, le résultat est :
[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
Ce qui précède représente l'intégralité du contenu de cet article.J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Configuration de l'authentification bidirectionnelle rapide Nginx SSL (script)
Récursion basée sur la structure de données PHP
À propos de l'utilisation du comportement thinkphp
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!