Funkcja set_error_handler

Funkcja set_error_handler ustawia niestandardową obsługę błędów. W pierwszym parametrze przekazywana jest funkcja callback, która będzie wywoływana przy wystąpieniu błędu. Drugim opcjonalnym parametrem można określić typy błędów, które powinny być przechwytywane przez procedurę obsługi.

Składnia

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

Przykład

Prosty przykład niestandardowej obsługi błędów:

php<?php
  function customError($errno, $errstr, $errfile, $errline) {
    echo "Błąd [$errno]: $errstr w $errfile w linii $errline";
  }
  
  set_error_handler("customError");
  
  echo $undefinedVar;
?>

Wynik wykonania kodu:

phpBłąd [8]: Undefined variable: undefinedVar w /path/to/file.php w linii 7

Przykład

Obsługa tylko określonych typów błędów:

php<?php
  function warningHandler($errno, $errstr) {
    if ($errno === E_WARNING) {
      echo "Warning captured: $errstr";
    }
  }
  
  set_error_handler("warningHandler", E_WARNING);
  
  strpos(); // Wywoła ostrzeżenie
?>

Wynik wykonania kodu:

phpWarning captured: strpos() expects at least 2 parameters, 0 given

Przykład

Przywrócenie standardowej obsługi błędów:

php<?php
  set_error_handler(null); // Powrót do standardowej obsługi błędów
?>