Maison  >  Article  >  développement back-end  >  PHP intercepte une instance d'erreur fatale

PHP intercepte une instance d'erreur fatale

*文
*文original
2017-12-27 09:46:161491parcourir

Comment intercepter les erreurs fatales en PHP ? Cet article présente principalement des exemples d'utilisation de la fonction register_shutdown_function pour intercepter les erreurs fatales en PHP. J'espère que cela aide tout le monde.

Lorsque nous travaillons sur des projets, des erreurs fatales se produisent parfois en raison d'une négligence. Si display_errors est désactivé, l'utilisateur verra une page vierge. S'il est activé, le message d'erreur fatale sera affiché (bien sûr, les gens normaux ne le feront pas).

Alors, existe-t-il un moyen d'intercepter l'erreur fatale à l'avance et de la signaler à l'utilisateur dans notre propre formulaire convivial ? Il existe une fonction en PHP appelée register_shutdown_function qui nous permet de définir une autre fonction qui peut être appelée lorsque l'exécution est arrêtée, c'est-à-dire lorsque l'exécution de notre script est terminée ou s'arrête de manière inattendue et que l'exécution de PHP est sur le point de s'arrêter. cette fonction sera appelée.
Veuillez voir un exemple ci-dessous :

<?php
$flag = false;
function deal_error(){
    global $flag;
    if (!$flag){
        die("粗问题啦,请稍后再试");
    }
    return false;
}
register_shutdown_function("deal_error");
//将因为致命错误而失败
//$obj = new NotExistClass(); //引入未定义的类
require(&#39;./test.php&#39;);
$flag = true;


Nous définissons l'indicateur sur false à l'entrée du programme, et enfin le définissons sur true, indiquant que le programme est exécuté normalement. Si l'indicateur n'est pas vrai à la fin, cela signifie qu'il est mort quelque part au milieu. À ce moment-là, register_shutdown_function sera appelé pour afficher notre résultat d'erreur personnalisé.

Si la classe ci-dessus n'est pas définie, des fichiers inexistants sont introduits (require ou require_once doivent être utilisés), etc., cela entraînera des erreurs fatales. Bien sûr, s’il manque un signe de ponctuation dans votre programme ou s’il comporte un caractère spécial supplémentaire ou quelque chose du genre, vous ne pouvez rien faire.

Recommandations associées :

Explication détaillée des types d'erreurs PHP et des méthodes de protection

Explication détaillée des exemples de mécanismes de gestion des erreurs PHP

Configuration des messages d'erreur PHP

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Solution aux pièges PHP crc32Article suivant:Solution aux pièges PHP crc32