ฟังก์ชัน set_error_handler

ฟังก์ชัน set_error_handler ตั้งค่าตัวจัดการข้อผิดพลาดของผู้ใช้ พารามิเตอร์แรกส่งผ่าน callback function ที่จะถูกเรียกเมื่อเกิดข้อผิดพลาด พารามิเตอร์ที่สองซึ่งเป็นตัวเลือกสามารถระบุประเภทของข้อผิดพลาดที่ตัวจัดการควรดักจับได้

ไวยากรณ์

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

ตัวอย่าง

ตัวอย่างง่ายๆ ของตัวจัดการข้อผิดพลาดของผู้ใช้:

php<?php
  function customError($errno, $errstr, $errfile, $errline) {
    echo "Error [$errno]: $errstr in $errfile on line $errline";
  }
  
  set_error_handler("customError");
  
  echo $undefinedVar;
?>

ผลลัพธ์ของการรันโค้ด:

phpError [8]: Undefined variable: undefinedVar in /path/to/file.php on line 7

ตัวอย่าง

จัดการเฉพาะข้อผิดพลาดประเภทที่กำหนด:

php<?php
  function warningHandler($errno, $errstr) {
    if ($errno === E_WARNING) {
      echo "Warning captured: $errstr";
    }
  }
  
  set_error_handler("warningHandler", E_WARNING);
  
  strpos(); // จะทำให้เกิดคำเตือน
?>

ผลลัพธ์ของการรันโค้ด:

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

ตัวอย่าง

การกลับไปใช้ตัวจัดการข้อผิดพลาดมาตรฐาน:

php<?php
  set_error_handler(null); // กลับไปใช้ตัวจัดการมาตรฐาน
?>