Funcția set_error_handler

Funcția set_error_handler stabilește un handler de erori personalizat. În primul parametru este transmisă o funcție callback care va fi apelată la apariția unei erori. Al doilea parametru opțional poate specifica tipurile de erori pe care handler-ul trebuie să le intercepteze.

Sintaxă

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

Exemplu

Un exemplu simplu de handler personalizat pentru erori:

php<?php
  function customError($errno, $errstr, $errfile, $errline) {
    echo "Eroare [$errno]: $errstr în $errfile la linia $errline";
  }
  
  set_error_handler("customError");
  
  echo $undefinedVar;
?>

Rezultatul executării codului:

phpEroare [8]: Undefined variable: undefinedVar în /path/to/file.php la linia 7

Exemplu

Gestionarea numai a anumitor tipuri de erori:

php<?php
  function warningHandler($errno, $errstr) {
    if ($errno === E_WARNING) {
      echo "Avertisment capturat: $errstr";
    }
  }
  
  set_error_handler("warningHandler", E_WARNING);
  
  strpos(); // Va provoca un avertisment
?>

Rezultatul executării codului:

phpAvertisment capturat: strpos() expects at least 2 parameters, 0 given

Exemplu

Revenirea la handler-ul standard de erori:

php<?php
  set_error_handler(null); // Revenire la handler-ul standard
?>