Hàm xử lý lỗi và log trong PHP
Đây là những hàm xử lý lỗi và xử lý các vấn đề về log trong PHP. Chúng cho phép bạn định nghĩa các qui tắc xử lý lỗi cho riêng bạn, cũng như chỉnh sửa cách lỗi đó có thể được log. Điều này cho phép bạn thay đổi và cải thiện việc báo cáo lỗi phù hợp với yêu cầu của bạn. Sử dụng các hàm ...
Đây là những hàm xử lý lỗi và xử lý các vấn đề về log trong PHP. Chúng cho phép bạn định nghĩa các qui tắc xử lý lỗi cho riêng bạn, cũng như chỉnh sửa cách lỗi đó có thể được log. Điều này cho phép bạn thay đổi và cải thiện việc báo cáo lỗi phù hợp với yêu cầu của bạn.
Sử dụng các hàm xử lý log này, bạn có thể gửi message một cách trực tiếp tới thiết bị khác, tới một Email, các các System log, … để bạn có thể log và giám sát các phần quan trọng của ứng dụng.
Cài đặt
Những hàm xử lý lỗi và xử lý log là một phần của PHP Core. Bạn không cần cài đặt gì thêm để sử dụng các hàm này.
Cấu hình Runtime
Chế độ vận hành của các hàm xử lý lỗi và xử lý log trong PHP phụ thuộc vào các cài đặt trong php.ini. Các cài đặt này được định nghĩa ở bảng sau:
| Tên | Mặc định | Có thể thay đổi | Changelog |
|---|---|---|---|
| error_reporting | NULL | PHP_INI_ALL | |
| display_errors | "1" | PHP_INI_ALL | |
| display_startup_errors | "0" | PHP_INI_ALL | Có sẵn từ PHP 4.0.3. |
| log_errors | "0" | PHP_INI_ALL | |
| log_errors_max_len | "1024" | PHP_INI_ALL | Có sẵn từ PHP 4.3.0. |
| ignore_repeated_errors | "0" | PHP_INI_ALL | Có sẵn từ PHP 4.3.0. |
| ignore_repeated_source | "0" | PHP_INI_ALL | Có sẵn từ PHP 4.3.0. |
| report_memleaks | "1" | PHP_INI_ALL | Có sẵn từ PHP 4.3.0. |
| track_errors | "0" | PHP_INI_ALL | |
| html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM trong PHP <= 4.2.3. Có sẵn từ PHP 4.0.2. |
| docref_root | "" | PHP_INI_ALL | Có sẵn từ PHP 4.3.0. |
| docref_ext | "" | PHP_INI_ALL | Có sẵn từ PHP 4.3.2. |
| error_prepend_string | NULL | PHP_INI_ALL | |
| error_append_string | NULL | PHP_INI_ALL | |
| error_log | NULL | PHP_INI_ALL | |
| warn_plus_overloading | NULL | Tùy chọn này không còn có sẵn ở trong PHP 4.0.0 |
Hằng về Error và Logging trong PHP
Cột PHP chỉ phiên bản PHP sớm nhất hỗ trợ hằng đó.
Bạn có thể sử dụng bất kỳ hằng nào trong khi cấu hình php.ini file của bạn.
| Giá trị | Hằng | Miêu tả | PHP |
|---|---|---|---|
| 1 | E_ERROR | Fatal run-time error. Đây là các lỗi nghiêm trọng, và việc thực thi của script bị ngừng lại | |
| 2 | E_WARNING | Non-fatal run-time error. Đây là các lỗi không nghiêm trọng, và việc thực thi của script không bị ngừng lại | |
| 4 | E_PARSE | Compile-time parse error. Lỗi về Parse trong khi biên dịch, và nên chỉ được tạo bởi Parser | |
| 8 | E_NOTICE | Run-time notice. Script tìm thấy cái gì đó có thể là một lỗi, nhưng cũng có thể xảy ra khi đang chạy một Script một cách bình thường | |
| 16 | E_CORE_ERROR | Fatal error tại quá trình khởi động PHP. Lỗi này khá giống một E_ERROR trong PHP Core | 4 |
| 32 | E_CORE_WARNING | Non-fatal error tại quá trình khởi động PHP. Lỗi này khá giống một E_WARNING trong PHP Core | 4 |
| 64 | E_COMPILE_ERROR | Fatal compile-time error. Các lỗi này khá giống một E_ERROR được tạo bởi Zend Scripting Engine | 4 |
| 128 | E_COMPILE_WARNING | Non-fatal compile-time error. Các lỗi này khá giống một E_WARNING được tạo bởi Zend Scripting Engine | 4 |
| 256 | E_USER_ERROR | Fatal user-generated error. Một lỗi nghiêm trọng do người dùng tạo, giống một E_ERROR được thiết lập bởi lập trình viên bởi sử dụng hàm function trigger_error() trong PHP | 4 |
| 512 | E_USER_WARNING | Non-fatal user-generated warning. Do người dùng tạo, giống một E_WARNING được thiết lập bởi lập trình viên bởi sử dụng hàm trigger_error() trong PHP | 4 |
| 1024 | E_USER_NOTICE | User-generated notice. Do người dùng tạo, giống một E_NOTICE được thiết lập bởi lập trình viên bởi sử dụng hàm trigger_error() trong PHP | 4 |
| 2048 | E_STRICT | Run-time notice. PHP gợi ý thay đổi code của bạn để làm code có tính tích hợp và hoạt động liên kết hơn | 5 |
| 4096 | E_RECOVERABLE_ERROR | Catchable fatal error. Giống một E_ERROR nhưng có thể được bắt bởi handle do người dùng định nghĩa (bạn cũng tham khảo hàm set_error_handler()) | 5 |
| 8191 | E_ALL | Tất cả Error và warning, ngoại trừ E_STRICT | 5 |
Danh sách hàm xử lý lỗi và xử lý log trong PHP
Để chạy các ví dụ, bạn sao chép phần PHP code vào phần // Phần PHP code ở dưới đây và sau đó lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả.
<html>
<head>
<title>Hàm trong PHP</title>
</head>
<body>
// Phần PHP code
</body>
</html>
Cột PHP chỉ phiên bản PHP sớm nhất mà hỗ trợ hàm đó.
| Hàm | Miêu tả | PHP |
|---|---|---|
| Tạo một Backtrace | 4 | |
| In một Backtrace | 5 | |
| Lấy lỗi cuối cùng đã xảy ra | 5 | |
| Gửi một lỗi tới Server Error-Log, tới một File hoặc một Remote Destination | 4 | |
| Xác định lỗi nào được báo cáo | 4 | |
| Phục hồi Error Handler trước đó | 4 | |
| Phục hồi Exception Handler trước đó | 5 | |
| Thiết lập một hàm do người dùng tạo để xử lý lỗi | 4 | |
| Thiết lập một hàm do người dùng tạo để xử lý ngoại lệ | 5 | |
| Tạo một error message được định nghĩa bởi người dùng | 4 | |
| Alias của hàm trigger_error() | 4 |
Mọi người cho thể tham gia khóa học thứ 6 của vietjackteam (đang tuyển sinh) vào đầu tháng 03/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : .Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.
Mọi người có thể xem demo nội dung khóa học tại địa chỉ
Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Trong tháng 4/2018, Zaidap khuyến mại giá SỐC chỉ còn 150k cho khóa học, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại
Loạt bài hướng dẫn học lập trình PHP cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com
Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học PHP phổ biến khác tại Zaidap: