Funkcija set_error_handler

Funkcija set_error_handler nustato vartotojo apibrėžtą klaidų apdorojimo funkciją. Pirmuoju parametru perduodama callback funkcija, kuri bus iškviečiama įvykus klaidai. Antruoju neprivalomu parametru galima nurodyti klaidų tipus, kuriuos turėtų perimti apdorojimo funkcija.

Sintaksė

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

Pavyzdys

Paprastas vartotojo apibrėžtos klaidų apdorojimo funkcijos pavyzdys:

php<?php
  function customError($errno, $errstr, $errfile, $errline) {
    echo "Klaida [$errno]: $errstr faile $errfile eilutėje $errline";
  }
  
  set_error_handler("customError");
  
  echo $undefinedVar;
?>

Kodo vykdymo rezultatas:

phpKlaida [8]: Nedefinuotas kintamasis: undefinedVar faile /path/to/file.php eilutėje 7

Pavyzdys

Tik tam tikrų klaidų tipų apdorojimas:

php<?php
  function warningHandler($errno, $errstr) {
    if ($errno === E_WARNING) {
      echo "Perimta įspėjimas: $errstr";
    }
  }
  
  set_error_handler("warningHandler", E_WARNING);
  
  strpos(); // Sukels įspėjimą
?>

Kodo vykdymo rezultatas:

phpPerimta įspėjimas: strpos() tikisi bent 2 parametrų, gauta 0

Pavyzdys

Standartinės klaidų apdorojimo funkcijos atkūrimas:

php<?php
  set_error_handler(null); // Grąžinimas prie standartinės apdorojimo funkcijos
?>