Trong bài này, chúng ta sẽ tìm hiểu về các loại lỗi (error) trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
Lỗi (error) là các vấn đề hoặc tình trạng bất thường, ảnh hưởng nghiêm trọng đến chương trình. Khi xảy ra lỗi, chương trình thường sẽ ngừng thực thi. Có 4 loại lỗi cơ bản trong PHP là:
- Parse error hoặc Syntax error
- Fatal error
- Warning error
- Notice error
1. Syntax error trong PHP
Syntax error hoặc Parse error còn gọi là lỗi cú pháp. Lỗi này xảy ra là do chúng ta không tuân thủ cú pháp của PHP khi soạn thảo chương trình. Các syntax error thường mắc phải như lỗi thiếu hoặc thừa dấu ngoặc, thiếu dấu chấm phẩy,… Lỗi cú pháp được phát hiện bởi trình thông dịch PHP (PHP interpreter).
Ví dụ lỗi cú pháp trong PHP
<?php
$x = "gochocit.com"
echo $x;
?>
Trong ví dụ trên, câu lệnh gán giá trị cho biến $x thiếu dấu chấm phẩy ; nên gây ra lỗi cú pháp. Bên dưới là một số ví dụ syntax error khác.
<?php
// thiếu dấu $ khi tạo biến
x = "gochocit.com"
$y = false;
// thiếu dấu ngoặc ) của if
if($x > 1{
$y = true;
}
?>
2. Fatal error trong PHP
Fatal error xảy ra khi chúng ta gọi một hàm chưa được định nghĩa. Ví dụ:
<?php
function add($x, $y){
$sum = $x + $y;
echo "sum = " . $sum;
}
$x = 0;
$y = 20;
add($x, $y);
// fatal error: hàm diff chưa được định nghĩa
diff($x, $y);
?>
Kết quả
sum = 20
Fatal error: Uncaught Error: Call to undefined function diff()
3. Warning error trong PHP
Warning error là một cảnh báo và không dừng thực thi chương trình. Warning error thường xảy ra khi include hoặc require một file không tồn tại. Ví dụ:
<?php
$x = "Hello all!";
include ("gochocit.php");
echo $x;
?>
Kết quả
Warning: include(gochocit.php): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 3
Hello all!
4. Notice error trong PHP
Notice error tương tự như Warning error. Notice error thông báo chương trình có một vấn đề nào đó nhưng vẫn cho phép thực thi script PHP.
<?php
$x = "gochocit.com";
echo $x;
// notice error hoặc warning error: chưa khai báo biến y
// mà đã truy xuất biến y
echo $y;
?>
5. Error constants trong PHP
Bên dưới là những error constant được định nghĩa sẵn trong PHP.Giá trị Hằng Ý nghĩa 1 E_ERROR Một fatal error sẽ làm dừng chương trình 2 E_WARNING Những warning sẽ không làm dừng chương trình 4 E_PARSE Lỗi khi phân tích cú pháp 8 E_NOTICE Notice error và chương trình có thể chạy bình thường 16 E_CORE_ERROR Fatal error xảy ra khi PHP mới khởi chạy. Lỗi này liên quan đến core PHP 32 E_CORE_WARNING Giống E_WARNING nhưng liên quan đến core PHP 64 E_COMPILE_ERROR Giống E_ERROR nhưng được tạo ra bởi Zend Scripting Engine 128 E_COMPILE_WARNING Giống E_WARNING nhưng được tạo ra bởi Zend Scripting Engine 32767 E_ALL Tất cả PHP errors và warnings
Mỗi error trong PHP được đánh một giá trị (value) lỗi. Nó giống như mã lỗi, giúp dễ dàng xác định lỗi đang xảy ra là lỗi gì.
Ngoài những error constant ở trên, PHP còn nhiều error constant khác. Các bạn có thể tham khảo thêm ở Errors and Logging Constants.