Bug và Debug trong PHP

Các chương trình hiếm khi hoạt động một cách chính xác ngay từ lần đầu tiên. Nhiều thứ có thể sai trong chương trình khiến trình thông dịch PHP tạo ra thông báo lỗi. Bạn có thể chọn nơi thông báo lỗi này xuất hiện. Các thông báo có thể được gửi cùng với output của chương trình khác tới trình duyệt web. Chúng cũng có thể có trong error log trên Web Server.

Để làm thông báo lỗi hiển thị trong trình duyệt, thiết lập chỉ thị cấu hình display_errors thành On. Để gửi các lỗi tới error log trên Web Server, thiết lập log_errors thành On. Nếu muốn thông báo lỗi hiện cả ở 2 vị trí trên, bạn có thể thiết lập hai chỉ thị này là On.

PHP định nghĩa một số hằng mà bạn có thể sử dụng để thiết lập giá trị của error_reporting, để chỉ có kiểu error cụ thể được báo cáo: E_ALL (cho tất cả lỗi ngoại trừ strict notice), E_PARSE (parse error), E_ERROR (Fatal error), E_WARNING (warning), E_NOTICE (notice), và E_STRICT (strict notice).

Trong khi viết chương trình PHP, sử dụng các trình soạn thảo có thể nhận biết PHP như BBEdit hoặc Emacs là một ý tưởng tốt. Một trong những tính năng đặc biệt của các Editor này là làm nổi bật cú pháp. Nó thay đổi màu các phần khác nhau của chương trình dựa trên những phần đó là gì. Ví dụ, các string PHP là màu hồng, các từ khóa như if PHP, while là màu xanh da trời, comment là màu xám, và các biến PHP là màu đen.

Tính năng khác là so khớp trích dẫn và dấu ngoặc đơn, nhằm đảm bảo rằng các trích dẫn và dấu ngoặc đơn của bạn là cân đối. Khi bạn gõ một dấu ngoặc ôm đóng, ví dụ }, Editor sẽ làm nổi bật dấu ngoặc mở { khớp với nó.

Dưới đây là các điểm quan trọng cần kiểm tra trong khi debug chương trình của bạn:

  • Thiếu dấu chấm phảy (;): Mỗi lệnh PHP kết thúc với một dấu chấm phảy (;). PHP không dừng đọc một lệnh tới khi nó gặp một dấu chấm phảy. Nếu bạn quên dấu chấm phảy ở cuối dòng, PHP tiếp tục đọc lệnh trên dòng tiếp theo.
  • Không đủ dấu bằng (=): Khi bạn hỏi hai giá trị có bằng nhau không trong một lệnh so sánh, bạn cần hai dấu bằng (==). Sử dụng một dấu bằng là một lỗi phổ biến.
  • Tên biến viết sai chính tả: Nếu bạn viết sai chính tả một biến thì PHP hiểu nó như là một biến mới. Nhớ rằng, với PHP, $test và $Test không giống nhau.
  • Thiếu ký hiệu $: Quên ký hiệu $ trong tên một biến là hiếm khi gặp, nhưng nếu thiếu, nó sẽ tạo một thông báo lỗi để bạn biết nơi xảy ra vấn đề.
  • Vấn đề về trích dẫn: Bạn có thể có quá nhiều, quá ít trích dẫn hoặc bị lỗi trích dẫn. Vì thế bạn nên kiểm tra thật kỹ các trích dẫn.
  • Thiếu dấu ngoặc đơn hoặc dấu ngoặc ôm: Các dấu ngoặc này luôn đi kèm thành một cặp (), {}, [].
  • Chỉ mục mảng: Tất cả mảng đều bắt đầu từ 0 chứ không phải là 1.

Ngoài ra, xử lý tất cả lỗi một cách thích hợp và gửi tất cả thông báo theo dấu (trace message) vào trong log file của hệ thống, để nếu có bất kỳ vấn đề nào xảy ra, thì nó sẽ được ghi vào trong log file và bạn có thể debug vấn đề đó.

Theo tutorialspoint

Bài trước: Regular Expression trong PHP

Bài tiếp: Date & Time trong PHP

Thứ Bảy, 28/07/2018 08:37
51 👨 318