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. |