ฟังก์ชัน 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 |