Συνάρτηση set_error_handler

Η συνάρτηση set_error_handler ορίζει έναν προσαρμοσμένο χειριστή σφαλμάτων. Στην πρώτη παράμετρο μεταδίδεται μια συνάρτηση callback, η οποία θα καλείται όταν προκύψει ένα σφάλμα. Στη δεύτερη προαιρετική παράμετρο μπορεί να καθοριστεί ο τύπος σφαλμάτων που πρέπει να υποκλέπτει ο χειριστής.

Σύνταξη

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

Παράδειγμα

Ένα απλό παράδειγμα προσαρμοσμένου χειριστή σφαλμάτων:

php<?php
  function customError($errno, $errstr, $errfile, $errline) {
    echo "Σφάλμα [$errno]: $errstr στο $errfile στη γραμμή $errline";
  }
  
  set_error_handler("customError");
  
  echo $undefinedVar;
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpΣφάλμα [8]: Undefined variable: undefinedVar στο /path/to/file.php στη γραμμή 7

Παράδειγμα

Επεξεργασία μόνο συγκεκριμένων τύπων σφαλμάτων:

php<?php
  function warningHandler($errno, $errstr) {
    if ($errno === E_WARNING) {
      echo "Προειδοποίηση υποκλέφτηκε: $errstr";
    }
  }
  
  set_error_handler("warningHandler", E_WARNING);
  
  strpos(); // Θα προκαλέσει προειδοποίηση
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpΠροειδοποίηση υποκλέφτηκε: strpos() expects at least 2 parameters, 0 given

Παράδειγμα

Επιστροφή στον τυπικό χειριστή σφαλμάτων:

php<?php
  set_error_handler(null); // Επιστροφή στον τυπικό χειριστή
?>