PHP - Función set_error_handler ()

Sintaxis

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

Definición y uso

Esta función se puede utilizar para definir su propia forma de manejar los errores durante el tiempo de ejecución, por ejemplo, en aplicaciones en las que necesita realizar una limpieza de datos / archivos cuando ocurre un error crítico, o cuando necesita activar un error bajo ciertas condiciones.

Parámetros

No Señor Descripción de parámetros
1

error_handler(Required)

Especifica la función que se ejecutará en caso de error. La sintaxis de error_handler se proporciona a continuación.

2

error_types(Optional)

Especifica en qué niveles de informe de errores se mostrará el error definido por el usuario. El valor predeterminado es "E_ALL". Consulte "Constantes de registro y errores de PHP:" para conocer los posibles niveles de informes de errores.

Sintaxis de la función del controlador de errores

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

Aquí está la descripción del paramenter:

  • errno - El primer parámetro, errno, contiene el nivel del error generado, como un número entero.

  • errstr - El segundo parámetro, errstr, contiene el mensaje de error como una cadena.

  • errfile - El tercer parámetro es opcional, errfile, que contiene el nombre del archivo en el que se generó el error, como una cadena.

  • errline - El cuarto parámetro es opcional, errline, que contiene el número de línea en el que se generó el error, como un entero.

  • errcontext - El quinto parámetro es opcional, errcontext, que es una matriz que apunta a la tabla de símbolos activa en el punto en que ocurrió el error.

Valor devuelto

Devuelve una cadena que contiene el controlador de errores definido previamente (si lo hay) o NULL en caso de error.

Ejemplo

A continuación se muestra el uso de esta función:

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

Esto producirá el siguiente resultado:

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