Một lỗi trong mã PHP đề cập đến một sai sót trong chương trình dẫn đến kết quả không mong muốn hoặc sự cố. Một phương pháp hệ thống để tìm kiếm lỗi trước khi người dùng phát hiện ra được gọi là gỡ lỗi. Trong chương này, một số mẹo quan trọng để tìm lỗi trong mã PHP sẽ được cung cấp.
Chương trình hiếm khi hoạt động chính xác ngay từ lần đầu tiên. Nhiều điều có thể sai trong chương trình của bạn mà có thể khiến trình thông dịch PHP phát sinh thông báo lỗi. Bạn có quyền lựa chọn nơi mà những thông báo lỗi đó sẽ được gửi đến. Các thông báo có thể được gửi cùng với các đầu ra khác của chương trình đến trình duyệt web. Chúng cũng có thể được bao gồm trong "nhật ký lỗi của máy chủ web".
Để hiển thị thông báo lỗi trong trình duyệt, hãy đặt chỉ thị cấu hình "display_errors" thành ON. Đảm bảo rằng các cài đặt sau được bật trong tệp "php.ini".
display_errors=On display_startup_errors=On
Bạn cũng có thể sử dụng ini_set() function để ghi đè cấu hình "pnp.ini" −
ini_set('display_errors', 1) ini_set('display_startup_errors', 1)
Để gửi lỗi đến nhật ký lỗi của máy chủ web, hãy đặt "log_errors" thành ON. Bạn có thể đặt cả hai thành On nếu bạn muốn nhận thông báo lỗi ở cả hai nơi.
PHP định nghĩa một số constants mà bạn có thể sử dụng để thiết lập giá trị của error_reporting sao cho chỉ những lỗi của các loại nhất định được báo cáo −
E_ALL (cho tất cả các lỗi ngoại trừ thông báo nghiêm ngặt)
E_PARSE (lỗi phân tích)
E_ERROR (lỗi nghiêm trọng)
E_WARNING (cảnh báo)
E_NOTICE (thông báo)
E_STRICT (thông báo nghiêm ngặt)
Trong khi viết chương trình PHP của bạn, việc sử dụng các trình soạn thảo nhận diện PHP như BBEdit hoặc Emacs là một ý tưởng hay. Một trong những tính năng đặc biệt của các trình soạn thảo này là đánh dấu cú pháp. Nó thay đổi màu sắc của các phần khác nhau trong chương trình của bạn dựa trên loại của các phần đó. Ví dụ, chuỗi (strings) có màu hồng, từ khóa như if và while có màu xanh, chú thích (comments) có màu xám, và biến (variables) có màu đen.
VS Code từ Microsoft cũng là một lựa chọn tốt để chỉnh sửa mã PHP. Nếu bạn cài đặt tiện ích mở rộng Intelephense cho VS Code, bạn sẽ nhận được gợi ý kiểu và thông báo lỗi khi bạn nhập các câu lệnh PHP trong cửa sổ chỉnh sửa.
Một tính năng khác là kiểm tra dấu ngoặc và dấu nháy, giúp đảm bảo rằng các dấu ngoặc và dấu nháy của bạn được cân bằng. Khi bạn gõ một dấu phân cách đóng như "}", trình soạn thảo sẽ làm nổi bật dấu mở "{" mà nó khớp với.
Một người cần xác minh các điểm sau trong quá trình gỡ lỗi mã chương trình −
Mỗi câu lệnh PHP đều kết thúc bằng một dấu chấm phẩy (;). PHP sẽ không ngừng đọc một câu lệnh cho đến khi nó gặp một dấu chấm phẩy. Nếu bạn bỏ qua dấu chấm phẩy ở cuối một dòng, PHP sẽ tiếp tục đọc câu lệnh trên dòng tiếp theo.
Khi bạn hỏi xem hai giá trị có bằng nhau trong một câu lệnh so sánh, bạn cần sử dụng hai dấu "=" (==). Việc sử dụng một dấu "=" là một sai lầm phổ biến.
Nếu bạn đánh vần sai một biến, thì PHP sẽ hiểu đó là một biến mới. Hãy nhớ: Đối với PHP, $test không phải là cùng một biến với $Test.
Một dấu đô la bị thiếu trong tên biến thực sự rất khó phát hiện, nhưng ít nhất nó thường dẫn đến một thông báo lỗi để bạn biết nơi cần tìm vấn đề.
Bạn có thể có quá nhiều, quá ít, hoặc loại dấu ngoặc không đúng. Vì vậy, hãy kiểm tra để đảm bảo số lượng dấu ngoặc được cân bằng.
Chúng nên luôn luôn đi theo cặp.
Một mảng trong PHP là một tập hợp các mục, mỗi mục được gán một chỉ số tăng dần bắt đầu từ 0.
Hơn nữa, hãy xử lý tất cả các lỗi một cách đúng đắn và chuyển hướng tất cả các thông điệp theo dõi vào tệp nhật ký hệ thống để nếu có bất kỳ vấn đề nào xảy ra, nó sẽ được ghi vào tệp nhật ký hệ thống và bạn sẽ có thể gỡ lỗi vấn đề đó.