Về cơ bản, lỗi là lỗi trong chương trình có thể do viết sai cú pháp hoặc mã sai. Một thông báo lỗi được hiển thị trên trình duyệt của bạn có chứa tên tệp cùng với vị trí, thông báo mô tả lỗi và số dòng đã xảy ra lỗi
Thường có nhiều loại lỗi khác nhau. Trong PHP, chủ yếu có bốn loại lỗi được xem xét
- Lỗi cú pháp hoặc lỗi phân tích cú pháp
- Lỗi nghiêm trọng
- Lỗi cảnh báo
- thông báo lỗi
Chúng tôi sẽ thảo luận chi tiết về tất cả các lỗi này với các ví dụ
Lỗi cú pháp hoặc lỗi phân tích cú pháp
Lỗi cú pháp là lỗi trong cú pháp của mã nguồn, lỗi này có thể do người lập trình mắc phải do thiếu quan tâm hoặc thiếu kiến thức. Nó còn được gọi là lỗi Parse. Trình biên dịch được sử dụng để bắt lỗi cú pháp tại thời điểm biên dịch
Ghi chú. Lỗi cú pháp dừng thực thi mã
Những lỗi này có thể xảy ra do những lý do phổ biến như dấu ngoặc kép không đóng, dấu chấm phẩy bị thiếu, dấu ngoặc thừa hoặc thiếu hoặc dấu ngoặc không đóng, v.v. Trong khi biên dịch chương trình, trình biên dịch có thể bắt lỗi cú pháp. Nó đưa ra lỗi phân tích cú pháp hoặc thông báo lỗi cú pháp
ví dụ 1. thiếu dấu chấm phẩy
đầu ra
Parse error: syntax error, unexpected 'echo' [T_ECHO], expecting ',' or ';' in C:\xampp\htdocs\program\fatalerror.php on line 5
Giải trình. Trong ví dụ trên, chúng tôi đã cố gắng sử dụng biến $automobile, biến này không được xác định. Do đó nó sinh ra thông báo "Biến chưa xác định" và tiếp tục thực hiện chương trình
Giải trình. Bất cứ khi nào công cụ PHP gặp phải bất kỳ sự cố nào ngăn tập lệnh chạy đúng cách, nó sẽ tạo ra một thông báo lỗi. Có mười sáu cấp độ lỗi và mỗi cấp độ được biểu thị bằng một giá trị số nguyên và một hằng số liên quan
A neat way to have a place in code to control error reporting configuration :]
$errorsActive = [
E_ERROR => FALSE,
E_WARNING => TRUE,
E_PARSE => TRUE,
E_NOTICE => TRUE,
E_CORE_ERROR => FALSE,
E_CORE_WARNING => FALSE,
E_COMPILE_ERROR => FALSE,
E_COMPILE_WARNING => FALSE,
E_USER_ERROR => TRUE,
E_USER_WARNING => TRUE,
E_USER_NOTICE => TRUE,
E_STRICT => FALSE,
E_RECOVERABLE_ERROR => TRUE,
E_DEPRECATED => FALSE,
E_USER_DEPRECATED => TRUE,
E_ALL => FALSE,
];
error_reporting[
array_sum[
array_keys[$errorsActive, $search = true]
]
];
?>
PHP error_reporting có thể giúp bạn đặt mức độ lỗi trong báo cáo nhật ký và sử dụng nhật ký, bạn có thể dễ dàng xác định các lỗi trong mã của mình
Về cơ bản, lỗi PHP được phân loại theo mức độ lỗi cho các loại lỗi khác nhau và nó xác định tất cả các loại lỗi từ thông báo đến lỗi nghiêm trọng. Mức độ lỗi xác định mức độ nghiêm trọng và tầm quan trọng của lỗi. Hầu hết các lỗi có thể được phát hiện bằng trình xử lý lỗi tùy chỉnh, nhưng một số lỗi không thể khôi phục được
Làm cách nào để sử dụng hàm error_reporting?
Hàm error_reporting[] dùng để thiết lập cấp độ lỗi PHP và trả về cấp độ hiện tại
Bạn có thể thiết lập mức lỗi trong php. ban đầu. Theo mặc định, PHP sẽ báo cáo tất cả các lỗi trừ thông báo. Mức báo cáo lỗi có thể được đặt thông qua một số hằng số được xác định trước có sẵn trong PHP để báo lỗi
Nói chung Để đặt mức độ lỗi trong ứng dụng web PHP, error_reporting[], chức năng này rất hữu ích. Chúng ta có thể đặt các mức lỗi như
1
2
3
int error_reporting[E_ERROR . E_WARNING . E_NOTICE . E_PARSE];
Làm sao để Tắt hết Lỗi?
Để tắt tất cả các mức lỗi, chúng ta có thể sử dụng cùng chức năng error_reporting với giá trị 0
1
2
3
báo cáo lỗi[0];
Làm sao để Bật tất cả các lỗi?
Để bật tất cả các mức lỗi, chúng ta có thể sử dụng cùng chức năng error_reporting với giá trị E_ALL, có thể sử dụng điều kiện “hoặc” để có thể báo cáo tất cả các loại lỗi
1
2
3
error_reporting [E_ALL]; // Report All Bugs
Các loại cấp độ lỗi
Hãy cùng xem từng loại mức độ lỗi cơ bản. Trước khi đi sâu vào các cấp độ lỗi, nếu bạn muốn tìm hiểu cách ghi nhật ký lỗi, hãy tìm hiểu về LOG của PHP, MySQL và Apache tại đây
1. E_ERROR
Đây là một lỗi nghiêm trọng, không thể khôi phục. Các ví dụ cho E_ERROR là khai báo lại exe hoặc lớp chưa bắt buộc. Đó là lỗi Thời gian chạy và nó sẽ ngăn việc thực thi mã
1
2
3
error_reporting[E_ERROR];
2. E_WARNING
Đây là loại lỗi phổ biến nhất. Nó thường xảy ra khi bạn đã cố gắng và làm sai điều gì đó. Ví dụ thiếu tham số hàm hoặc phép chia cho 0
3. E_STRICT
Phần thú vị của cấp độ lỗi này là phần duy nhất không có trong hằng số E_ALL. Lý do chính và quan trọng là nó dễ dàng chuyển đổi từ PHP 4 sang PHP 5 và bạn vẫn có thể chạy mã PHP 4 trong PHP 5
4. E_NOTICE
Thông báo là thông báo xác định rằng mã chạy trong trình duyệt có thể đang làm điều gì đó ngoài ý muốn như cố đọc biến không xác định. Đó là một thực tiễn tốt để phát triển với các thông báo được bật để mã của bạn "không có thông báo" trước khi chuyển sang hoạt động
5. E_PARSE
Lỗi phân tích cú pháp xảy ra tại thời điểm biên dịch mã và nó dừng thực thi mã nếu có bất kỳ lỗi nào xảy ra trong quá trình phân tích cú pháp
6. E_CORE_ERROR
Đó là lỗi PHP nội bộ xảy ra nếu bất kỳ tiện ích mở rộng PHP nào không khởi động được. Nó xảy ra trong quá trình khởi tạo bắt đầu
7. E_USER_ERROR
Nó được sử dụng khi xảy ra bất kỳ lỗi nào do người dùng xác định và dừng việc thực thi mã PHP. Lỗi do người dùng xác định [E_USER_*] không bao giờ do chính PHP gây ra
8. E_USER_NOTICE
Nó được sử dụng khi xảy ra bất kỳ thông báo nào do người dùng xác định. Nó tương tự như E_NOTICE
Trong máy chủ phát triển, Bạn có thể bật tất cả lỗi, nhưng nên tắt cảnh báo và thông báo trên máy chủ sản xuất
Đây là cách sử dụng chi tiết PHP error_reporting và mức độ lỗi. Bạn có nghĩ rằng bất kỳ cấp độ lỗi nào trong PHP mà chúng tôi đã bỏ lỡ ở đây không?