Hàm error_reporting PHP sử dụng như thế nào ?

Hàm error_reporting() là một hàm được định nghĩa sẵn trong PHP. Nó cho phép bạn điều khiển báo cáo bao nhiêu và loại lỗi PHP sẽ được báo cáo. Như chúng ta đã thảo luận trước đó, PHP có một số cấp độ lỗi khác nhau. Sử dụng hàm error_reporting() PHP sẽ thiết lập cấp độ đó trong thời gian chạy của script hiện tại. Tệp php.ini có một chỉ thị error_reporting sẽ được thiết lập tại thời điểm chạy bởi hàm này.

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn PHP từ cơ bản đến nâng cao tại dự án Phát Triển Website.

Tổng quan Hàm error_reporting PHP

Hàm error_reporting() được sử dụng trong PHP để kiểm soát việc báo cáo các lỗi trong source code. Khi chúng ta lập trình, việc báo cáo lỗi rất quan trọng để giúp chúng ta xác định vấn đề và sửa chữa nó. Ví dụ, nếu có một lỗi cú pháp trong script PHP của chúng ta, chúng ta muốn biết vị trí của lỗi đó để sửa chữa nó.

Hàm error_reporting PHP Là gì

Hàm error_reporting() là một hàm được định nghĩa sẵn trong PHP. Nó cho phép bạn thiết lập cấp độ báo cáo lỗi trong PHP. Qua đó, bạn có thể điều khiển loại lỗi nào được báo cáo và loại lỗi nào sẽ không được báo cáo.

Hướng dẫn Hàm error_reporting PHP

Cú pháp hàm error_reporting() PHP:

error_reporting($level);

Trong đó:

  • $level là một tham số tùy chọn. Nó quy định cấp độ báo cáo lỗi cho script hiện tại.

Nếu tham số $level không được thiết lập, hàm error_reporting() sẽ trả về cấp độ báo cáo lỗi hiện tại. Nếu có, nó sẽ quay trở lại cấp độ báo cáo lỗi cũ.

Return Values

Nếu tham số $level không được thiết lập, hàm sẽ trả về cấp độ báo cáo lỗi hiện tại. Nếu có, nó sẽ trở lại cấp độ báo cáo lỗi cũ.

Changes

Các thay đổi của hàm error_reporting() PHP theo từng phiên bản PHP:

  • PHP 5.0: E_STRICT mới được giới thiệu vào PHP 5.0.
  • PHP 5.2: E_RECOVERABLE_ERROR được thêm vào trong PHP 5.2.
  • PHP 5.3: E_DEPRECATED và E_USER_DEPRECATED được thêm mới trong PHP 5.3.
  • PHP 5.4: E_STRICT đã trở thành một phần của E_ALL.

Ví dụ

Dưới đây là ví dụ về cách sử dụng chương trình PHP để chỉ định các cấp độ báo cáo lỗi khác nhau:

<?php 
error_reporting(E_ERROR); //bao cao loi chi dinh
echo $undefined_variable; //Khong dinh nghia bien, nen se co loi E_NOTICE  
?>

Ở ví dụ này, hàm error_reporting() PHP được sử dụng để thiết lập cấp độ báo cáo lỗi là E_ERROR. Một biến không được xác định trước được sử dụng trong script, do đó sẽ có một lỗi E_NOTICE được báo cáo.

Cách triển khai hàm error_reporting PHP

Hàm error_reporting() trong PHP cho phép bạn chỉ định mức độ báo lỗi. Theo mặc định, PHP sẽ chỉ báo lỗi nghiêm trọng (E_ERROR). Để hiển thị tất cả lỗi, bạn có thể sử dụng hàm này để đặt mức báo lỗi thành E_ALL.

Cú pháp

error_reporting(int $level);

Parameters

  • $level: Mức độ báo lỗi. Có thể là một trong các giá trị sau:
    • E_ALL: Hiển thị tất cả lỗi, bao gồm cả lỗi cảnh báo (E_WARNING), lỗi thông báo (E_NOTICE), và lỗi nghiêm trọng (E_ERROR).
    • E_ERROR: Chỉ hiển thị lỗi nghiêm trọng.
    • E_WARNING: Hiển thị lỗi cảnh báo và lỗi nghiêm trọng.
    • E_NOTICE: Hiển thị lỗi cảnh báo, lỗi thông báo, và lỗi nghiêm trọng.
    • E_PARSE: Hiển thị lỗi cú pháp.
    • E_CORE_ERROR: Hiển thị lỗi lõi của PHP.
    • E_CORE_WARNING: Hiển thị lỗi cảnh báo lõi của PHP.
    • E_COMPILE_ERROR: Hiển thị lỗi biên dịch.
    • E_COMPILE_WARNING: Hiển thị lỗi cảnh báo biên dịch.
    • E_USER_ERROR: Hiển thị lỗi do người dùng định nghĩa.
    • E_USER_WARNING: Hiển thị lỗi cảnh báo do người dùng định nghĩa.
    • E_USER_NOTICE: Hiển thị lỗi thông báo do người dùng định nghĩa.
    • E_STRICT: Hiển thị các lỗi cảnh báo về mã không tuân thủ các khuyến nghị của PHP.
    • E_RECOVERABLE_ERROR: Hiển thị lỗi có thể khắc phục được.

Ví dụ

// Hiển thị tất cả lỗi
error_reporting(E_ALL);

// Lỗi cú pháp
$a = 10;
$b = 20;
$c = $a + $b;

// Cú pháp sai
$c = $a + $b;

Trong ví dụ trên, hàm error_reporting() sẽ được gọi với tham số E_ALL, do đó tất cả lỗi, bao gồm cả lỗi cú pháp, sẽ được hiển thị.

Ghi chú

  • Hàm error_reporting() chỉ ảnh hưởng đến quá trình thực thi script hiện tại. Để đặt mức báo lỗi cho tất cả các script, bạn có thể sử dụng hàm ini_set() để đặt giá trị của biến error_reporting trong tệp cấu hình php.ini.
  • Nếu bạn không chắc chắn nên đặt mức báo lỗi nào, hãy đặt mức báo lỗi thành E_ERROR. Điều này sẽ chỉ hiển thị các lỗi nghiêm trọng, giúp bạn dễ dàng tìm và sửa chữa các lỗi trong mã của mình.

Important Points of error_reporting()

Dưới đây là một số điểm quan trọng của hàm error_reporting () PHP:

  1. Bằng cách truyền giá trị 0 vào hàm error_reporting(), bạn có thể loại bỏ tất cả các lỗi, cảnh báo, thông báo và tin nhắn phân tích. Nên tốt hơn là tắt các thông báo báo cáo trong tệp .htaccess hoặc trong tệp ini thay vì có mã này trong mỗi file PHP.
  2. PHP cho phép các nhà phát triển sử dụng các biến chưa được khai báo. Tuy nhiên, những biến chưa được khai báo này có thể gây ra vấn đề cho ứng dụng khi được sử dụng trong các điều kiện và vòng lặp. Đôi khi, điều này có thể xảy ra khi biến đã được khai báo và được sử dụng trong các điều kiện hoặc vòng lặp có chính tả khác nhau. Do đó, để hiển thị biến chưa được khai báo trong ứng dụng web, hãy truyền E_NOTICE vào trong hàm error_reporting() PHP.
  3. Hàm error_reporting() cho phép hiển thị các lỗi cụ thể mà người dùng muốn. Sử dụng ký tự ~, bạn có thể lọc lỗi. Ví dụ – ~E_NOTICE có nghĩa là thông báo sẽ không được hiển thị. Trong đoạn code dưới đây, tất cả các lỗi sẽ được hiển thị trừ E_NOTICE.
error_reporting(E_ALL & ~E_NOTICE);
  1. error_reporting(E_ALL) là phổ biến nhất để hiển thị lỗi vì nó dễ đọc và hiểu.

Ưu và Nhược điểm Hàm error_reporting PHP

Ưu điểm:

  • Cho phép kiểm soát việc báo cáo các lỗi trong source code.
  • Giúp xác định vị trí lỗi đối với script PHP.
  • Có thể thiết lập cấp độ báo cáo lỗi khác nhau để điều chỉnh theo từng trường hợp cụ thể.

Nhược điểm:

  • Không thể tự động sửa các lỗi.
  • Không thể hiển thị tất cả các loại lỗi cùng một lúc.

Lời khuyên Hàm error_reporting PHP

Đối với những người mới bắt đầu học lập trình PHP, hàm error_reporting() PHP là một phần quan trọng để hiểu. Nếu không có khả năng kiểm soát các lỗi trong source code của bạn, chương trình PHP của bạn có thể gặp rất nhiều vấn đề. Bạn nên tìm hiểu kỹ về cách sử dụng hàm error_reporting() và cách thiết lập các cấp độ báo cáo lỗi phù hợp cho từng trường hợp.

Tổng kết

Hàm error_reporting() PHP là một phần quan trọng của lập trình PHP. Nó cho phép bạn kiểm soát việc báo cáo các lỗi trong source code của bạn và giúp xác định vị trí lỗi đối với script PHP. Bạn cần phải tìm hiểu kỹ về cách sử dụng hàm này và cách thiết lập các cấp độ báo cáo lỗi phù hợp cho từng trường hợp cụ thể.Ngoài ra, nếu cần phải tắt báo cáo lỗi trong một file PHP cụ thể, bạn có thể sử dụng câu lệnh sau:

error_reporting(0);

Tuy nhiên, lời khuyên của chúng tôi là không nên sử dụng câu lệnh này trừ khi bạn đang gặp vấn đề về hiệu suất hoặc an ninh. Thay vào đó, hãy sử dụng các cấp độ báo cáo lỗi phù hợp để giúp tìm và sửa lỗi một cách nhanh chóng và dễ dàng hơn.

Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về hàm error_reporting() trong PHP và cách sử dụng nó trong quá trình lập trình. Nếu bạn có bất kỳ câu hỏi hoặc ý kiến ​​phản hồi nào, hãy để lại bình luận bên dưới. Chúng tôi sẵn sàng trả lời và giúp đỡ bạn. 

Hàm error_reporting() được sử dụng để làm gì?

Hàm error_reporting() được sử dụng để kiểm soát việc báo cáo các lỗi trong source code của bạn.

Có bao nhiêu cấp độ báo cáo lỗi khác nhau có thể thiết lập bằng hàm error_reporting()?

Có nhiều cấp độ báo cáo lỗi khác nhau có thể thiết lập bằng hàm error_reporting(). Bạn có thể chỉ định một hoặc nhiều cấp độ để điều chỉnh báo cáo lỗi.

Làm thế nào để hiển thị biến chưa được khai báo trong ứng dụng web của tôi?

Để hiển thị biến chưa được khai báo trong ứng dụng web của bạn, hãy truyền E_NOTICE vào trong hàm error_reporting().

Hàm error_reporting() có nhược điểm gì?

Hàm error_reporting() không thể tự động sửa các lỗi và không thể hiển thị tất cả các loại lỗi cùng một lúc.

Tôi nên làm gì nếu tôi gặp vấn đề liên quan đến hàm error_reporting()?

Nếu bạn gặp vấn đề liên quan đến hàm error_reporting(), bạn nên tìm hiểu kỹ về cách sử dụng hàm này và cách thiết lập các cấp độ báo cáo lỗi phù hợp cho từng trường hợp cụ thể.