PHP - Fonction set_error_handler ()

Syntaxe

mixed set_error_handler ( callback $error_handler [, int $error_types] );

Définition et utilisation

Cette fonction peut être utilisée pour définir votre propre façon de gérer les erreurs lors de l'exécution, par exemple dans les applications dans lesquelles vous devez effectuer le nettoyage des données / fichiers lorsqu'une erreur critique se produit ou lorsque vous devez déclencher une erreur dans certaines conditions.

Paramètres

Sr. Non Paramètre et description
1

error_handler(Required)

Il spécifie la fonction à exécuter en cas d'erreurs. La syntaxe de error_handler est donnée ci-dessous.

2

error_types(Optional)

Il spécifie sur quels niveaux de rapport d'erreurs l'erreur définie par l'utilisateur sera affichée. La valeur par défaut est "E_ALL". Voir «Constantes d'erreur et de journalisation PHP:» pour les niveaux de rapport d'erreur possibles.

Syntaxe de la fonction du gestionnaire d'erreurs

error_function(error_level,error_message, error_file,error_line,error_context);

Voici la description du paramètre -

  • errno - Le premier paramètre, errno, contient le niveau de l'erreur levée, sous forme d'entier.

  • errstr - Le deuxième paramètre, errstr, contient le message d'erreur, sous forme de chaîne.

  • errfile - Le troisième paramètre est facultatif, errfile, qui contient le nom de fichier dans lequel l'erreur a été déclenchée, sous forme de chaîne.

  • errline - Le quatrième paramètre est facultatif, errline, qui contient le numéro de ligne sur lequel l'erreur a été déclenchée, sous forme d'entier.

  • errcontext - Le cinquième paramètre est facultatif, errcontext, qui est un tableau qui pointe vers la table de symboles active au point où l'erreur s'est produite.

Valeur de retour

Renvoie une chaîne contenant le gestionnaire d'erreurs précédemment défini (le cas échéant), ou NULL en cas d'erreur.

Exemple

Voici l'utilisation de cette fonction -

<?php
   function customError($errno, $errstr, $errfile, $errline) {
      echo "Custom error: [$errno] $errstr\n";
      echo "Error on line $errline in $errfile\n";
      echo "Ending Script";
      
      die();
   }
   
   //set error handler
   set_error_handler("customError");
   $test = 0;
   
   //trigger error
   if ($test >  -1) {
      trigger_error("A custom error has been triggered");
   }
?>

Cela produira le résultat suivant -

Custom error: [1024] A custom error has been triggered Error on line 16 
in /home/cg/root/1531703/main.php 
Ending Script