ฟังก์ชัน set_error_handler() ของ PHP

ตัวอย่าง

ตั้งค่าฟังก์ชันการจัดการข้อผิดพลาดที่กำหนดโดยผู้ใช้ด้วย set_error_handler() และกระตุ้นข้อผิดพลาด (ด้วย trigger_error()):

<?php
 // ฟังก์ชันการจัดการข้อผิดพลาดที่กำหนดโดยผู้ใช้
 function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "<b>Custom error:</b> [$errno] $errstr<br>";
     echo " Error on line $errline in $errfile<br>";
 }
 // กำหนดฟังก์ชันการจัดการข้อผิดพลาดที่กำหนดโดยผู้ใช้
 set_error_handler("myErrorHandler");
 $test=2;
 // กระตุ้นข้อผิดพลาด
 if ($test>1) {
     trigger_error("A custom error has been triggered");
 }
 ?> 

การปริมาณของรหัสดังกล่าวมีลักษณะเช่นนี้:

ข้อผิดพลาดที่กำหนดล่วงหน้า: [1024] ข้อผิดพลาดที่กำหนดล่วงหน้าได้ถูกกระตุ้น
 ข้อผิดพลาดบนบรรทัดที่ 14 ใน C:\webfolder\test.php

การกำหนดและการใช้งาน

ฟังก์ชัน set_error_handler() กำหนดฟังก์ชันตัวแทนข้อผิดพลาดที่กำหนดโดยผู้ใช้

หมายเหตุ:ถ้าใช้ฟังก์ชันนี้ จะหลีกเลี่ยงการใช้ฟังก์ชันตัวแทนข้อผิดพลาดของ PHP มาตรฐาน และถ้ามีความจำเป็น ฟังก์ชันตัวแทนข้อผิดพลาดที่กำหนดโดยผู้ใช้จะถูกดักดายด้วย die() สำหรับการหยุดสคริปต์

หมายเหตุ:ถ้าข้อผิดพลาดเกิดขึ้นก่อนการปฏิบัติการสคริปต์ (เช่น ขณะที่ขนส่งแบบฟากไฟล์) จะไม่เรียกฟังก์ชันตัวแทนข้อผิดพลาดที่กำหนดเนื่องจากมันยังไม่ได้ถูกลงทะเบียนในตอนนั้น

การใช้งาน

set_error_handler(errorhandler,E_ALL|E_STRICT);
ตัวแปร รายละเอียด
errorhandler จำเป็น กำหนดชื่อฟังก์ชันตัวแทนข้อผิดพลาดของผู้ใช้
E_ALL|E_STRICT ที่เลือกใช้ กำหนดระดับการแสดงรายงานข้อผิดพลาดที่กำหนดโดยผู้ใช้ โดยเริ่มต้นค่าเริ่มต้นคือ "E_ALL"

รายละเอียดเทคนิค

ค่าที่กลับมา ข้อความตัวแปรที่ปรับปรุงข้อผิดพลาดที่ได้รับการกำหนดก่อนหน้านี้
เวอร์ชัน PHP: 4.0.1+
บันทึกการปรับปรุง PHP:

PHP 5.5: ตัวแปร errorhandler ตอนนี้ยอมรับ NULL

PHP 5.2: ฟังก์ชันตัวแทนข้อผิดพลาดต้องกลับมาด้วย FALSE เพื่อแสดง $php_errormsg