PHP - Funzione set_error_handler ()

Sintassi

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

Definizione e utilizzo

Questa funzione può essere utilizzata per definire il proprio modo di gestire gli errori durante il runtime, ad esempio nelle applicazioni in cui è necessario eseguire la pulizia di dati / file quando si verifica un errore critico o quando è necessario attivare un errore in determinate condizioni.

Parametri

Suor n Parametro e descrizione
1

error_handler(Required)

Specifica la funzione da eseguire in caso di errori. Di seguito viene fornita la sintassi di error_handler.

2

error_types(Optional)

Specifica su quali livelli di report degli errori verrà visualizzato l'errore definito dall'utente. L'impostazione predefinita è "E_ALL". Vedere "Errore PHP e costanti di registrazione:" per i possibili livelli di report degli errori.

Sintassi della funzione di gestione degli errori

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

Ecco la descrizione del paramedico:

  • errno - Il primo parametro, errno, contiene il livello dell'errore sollevato, come numero intero.

  • errstr - Il secondo parametro, errstr, contiene il messaggio di errore, come una stringa.

  • errfile - Il terzo parametro è opzionale, errfile, che contiene il nome del file in cui è stato generato l'errore, come una stringa.

  • errline - Il quarto parametro è facoltativo, errline, che contiene il numero di riga in cui è stato generato l'errore, come numero intero.

  • errcontext - Il quinto parametro è facoltativo, errcontext, che è un array che punta alla tabella dei simboli attiva nel punto in cui si è verificato l'errore.

Valore di ritorno

Restituisce una stringa contenente il gestore degli errori definito in precedenza (se presente) o NULL in caso di errore.

Esempio

Di seguito è riportato l'utilizzo di questa funzione:

<?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");
   }
?>

Questo produrrà il seguente risultato:

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