Xử lý lỗi và Debug trong PHP
Lỗi trong PHP là một phần khó tránh khi làm việc với ngôn ngữ này. Việc xử lý và debug lỗi đúng cách giúp các nhà phát triển tìm và khăc phục vấn đề nhanh chóng, đảm bảo hệ thống hoạt động ổn định. Trong bài này, chúng ta sẽ tìm hiểu cách xử lý lỗi và debug trong PHP.

1. Xử lý lỗi và Debug
1.1 Cấu hình hiển thị lỗi trong PHP
PHP cho phép hiển thị hoặc tắt bảng thông báo lỗi bằng error_reporting
và display_errors
.
Bật hiển thị lỗi trong khi phát triển
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
-
E_ALL
: Hiển thị tất cả các lỗi. -
E_NOTICE
: Chỉ hiển thị cảnh báo. -
E_WARNING
: Hiển thị các lỗi không nghiêm trọng.
Tắt hiển thị lỗi trong môi trường sản phẩm
ini_set('display_errors', 0);
error_reporting(0);
Lưu ý: Trong môi trường production, nên tắt hiển thị lỗi và chỉ ghi log lỗi.
1.2 Xử lý lỗi với try-catch
Try-catch giúp bắt và xử lý lỗi trong chương trình mà không làm gián đoạn hệ thống.
Ví dụ: Xử lý lỗi khi chia cho 0
function divide($a, $b) {
try {
if ($b == 0) {
throw new Exception("Lỗi: Không thể chia cho 0");
}
return $a / $b;
} catch (Exception $e) {
echo "Lỗi xảy ra: " . $e->getMessage();
}
}
echo divide(10, 0); // Lỗi: Không thể chia cho 0
Xử lý lỗi khi kết nối database
try {
$conn = new PDO("mysql:host=localhost;dbname=testdb", "root", "");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Kết nối thành công";
} catch (PDOException $e) {
echo "Lỗi kết nối: " . $e->getMessage();
}
1.3 Ghi log lỗi và debug
Ghi log lỗi với error_log()
PHP cho phép ghi lỗi vào file log thay vì hiển thị lên màn hình.
error_log("Có lỗi xảy ra", 3, "errors.log");
Ghi chú: 3
là tham số ghi log vào file thay vì hiển thị ra màn hình.
Debug bằng var_dump()
và print_r()
Hai hàm var_dump()
và print_r()
giúp xem chi tiết các biến và dữ liệu trong khi debug.
$data = ["name" => "John", "age" => 30];
var_dump($data);
print_r($data);
var_dump()
cung cấp thông tin chi tiết hơn so với print_r()
.
2. Kết luận
- Cách cấu hình PHP để hiển thị hoặc tắt lỗi.
- Cách xử lý lỗi với try-catch.
- Cách ghi log lỗi và debug với
var_dump()
,print_r()
,error_log()
.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com