Hàm set_error_handler() của PHP

Mô hình

Đặt hàm xử lý lỗi tự định nghĩa bằng hàm set_error_handler() và gây ra lỗi (bằng hàm trigger_error()):

<?php
 // Hàm xử lý lỗi tự定义
 function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "<b>Lỗi tùy chỉnh:</b> [$errno] $errstr<br>";
     echo " Lỗi ở dòng $errline trong $errfile<br>";
 }
 // Đặt hàm xử lý lỗi tự定义
 set_error_handler("myErrorHandler");
 $test=2;
 // Kích hoạt lỗi
 if ($test>1) {
     trigger_error("Một lỗi tùy chỉnh đã được kích hoạt");
 }
 ?> 

Output của mã trên sẽ tương tự như sau:

Lỗi tùy chỉnh: [1024] Một lỗi tùy chỉnh đã được kích hoạt
 Lỗi trên dòng 14 trong C:\webfolder\test.php

Định nghĩa và cách sử dụng

Hàm set_error_handler() thiết lập chương trình xử lý lỗi người dùng định nghĩa.

Chú thích:Nếu sử dụng hàm này, nó sẽ绕过 chương trình xử lý lỗi tiêu chuẩn của PHP, đồng thời nếu cần, chương trình xử lý lỗi người dùng định nghĩa sẽ chấm dứt script bằng die().

Chú thích:Nếu lỗi xảy ra trước khi script được thực thi (ví dụ: khi tải lên tệp), chương trình xử lý lỗi tùy chỉnh sẽ không được gọi vì nó chưa được đăng ký vào thời điểm đó.

Cú pháp

set_error_handler(errorhandler,E_ALL|E_STRICT);
Tham số Mô tả
errorhandler Bắt buộc. Định nghĩa tên hàm xử lý lỗi người dùng.
E_ALL|E_STRICT Tùy chọn. Định nghĩa mức độ báo cáo lỗi của lỗi người dùng định nghĩa. Mặc định là "E_ALL".

Chi tiết kỹ thuật

Giá trị trả về: Chứa chuỗi định nghĩa trước đó của chương trình xử lý lỗi.
Phiên bản PHP: 4.0.1+
Nhật ký cập nhật PHP:

PHP 5.5: Tham số errorhandler Hiện tại chấp nhận NULL

PHP 5.2: Chương trình xử lý lỗi phải trả về FALSE để hiển thị $php_errormsg.