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ė
set_error_handler(callable $error_handler, int $error_types = E_ALL | E_STRICT);
Pavyzdys
Paprastas vartotojo apibrėžtos klaidų apdorojimo funkcijos pavyzdys:
<?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:
Klaida [8]: Nedefinuotas kintamasis: undefinedVar faile /path/to/file.php eilutėje 7
Pavyzdys
Tik tam tikrų klaidų tipų apdorojimas:
<?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:
Perimta įspėjimas: strpos() tikisi bent 2 parametrų, gauta 0
Pavyzdys
Standartinės klaidų apdorojimo funkcijos atkūrimas:
<?php
set_error_handler(null); // Grąžinimas prie standartinės apdorojimo funkcijos
?>