Maison >développement back-end >Problème PHP >Comment détecter les erreurs fatales en php
Comment obtenir des erreurs fatales en PHP : ouvrez d'abord "ob_start" et créez un fichier "tmp.php" ; puis écrivez quelques codes d'erreur dans le fichier "short.php" et enfin accédez à "tmp.php" ; Il suffit de déposer.
php capture les erreurs fatales
L'enregistrement des journaux d'erreurs php peut nous aider efficacement à trouver des problèmes et à corriger des bugs, php Set_error_handler et set_exception_handler sont fournis pour capturer les erreurs et les exceptions. Cependant, set_error_handler ne peut pas capturer E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_STRICT et autres erreurs. De manière générale, s'il s'agit d'une erreur fatale, l'interpréteur PHP ne pourra pas compiler. Naturellement, ces erreurs ne peuvent pas être détectées. Cependant, nous pouvons utiliser certaines méthodes pour obtenir intelligemment ces messages d'erreur.
Recommandé : "Tutoriel PHP"
Créez d'abord un tmp.php
<?php //error_reporting(0); ob_start(); set_error_handler('errorHandler'); register_shutdown_function( 'close' ); function 大专栏 php捕获致命错误class="hljs-title">close(){ ob_end_clean(); $error = error_get_last(); echo '<pre class="brush:php;toolbar:false">'; print_r($error); } require 'short.php';
puis écrivez quelques codes d'erreur dans short.php, par exemple ,
echo $a//En n'ajoutant délibérément pas de point-virgule
puis en accédant à tmp.php, vous constaterez que la page n'affiche pas le message d'erreur de php lui-même, mais exécute la fermeture méthode. Il y a quelques points clés dans le code ci-dessus.
Tout d'abord, activez ob_start
Deuxième : utilisez register_shutdown_function pour enregistrer la fonction
Troisième : utilisez la fonction error_get_last pour obtenir des informations sur l'erreur
Quatrièmement : PHP analyse Le premier fichier ne peut pas avoir d'erreur fatale, sinon il ne peut pas être capturé. Par conséquent, il est également recommandé que lorsque vous créez votre propre framework ou choisissez un framework, il est préférable d'utiliser la méthode à entrée unique
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!