Функión set_error_handler

La función set_error_handler establece un manejador de errores personalizado. En el primer parámetro se pasa una función callback que se llamará cuando ocurra un error. Con el segundo parámetro opcional se pueden especificar los tipos de error que debe capturar el manejador.

Sintaxis

phpset_error_handler(callable $error_handler, int $error_types = E_ALL | E_STRICT);

Ejemplo

Un ejemplo simple de un manejador de errores personalizado:

php<?php
  function customError($errno, $errstr, $errfile, $errline) {
    echo "Error [$errno]: $errstr en $errfile en la línea $errline";
  }
  
  set_error_handler("customError");
  
  echo $undefinedVar;
?>

Resultado de la ejecución del código:

phpError [8]: Undefined variable: undefinedVar en /path/to/file.php en la línea 7

Ejemplo

Manejo solo de tipos específicos de errores:

php<?php
  function warningHandler($errno, $errstr) {
    if ($errno === E_WARNING) {
      echo "Advertencia capturada: $errstr";
    }
  }
  
  set_error_handler("warningHandler", E_WARNING);
  
  strpos(); // Generará una advertencia
?>

Resultado de la ejecución del código:

phpAdvertencia capturada: strpos() expects at least 2 parameters, 0 given

Ejemplo

Restauración del manejador de errores estándar:

php<?php
  set_error_handler(null); // Restauración al manejador estándar
?>