Vấn đề về php

Trong bài viết này, chúng ta sẽ tìm hiểu về cách xử lý 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

Nội dung chính Hiển thị

  • 1. Sử dụng hàm die() và exit() trong PHP
  • 1. 1. Hàm die() trong PHP
  • 1. 2. Hàm exit() trong PHP
  • 2. Tùy chỉnh xử lý lỗi (trình xử lý lỗi tùy chỉnh) trong PHP
  • 3. Hàm trigger_error() trong PHP
  • 4. Hàm error_log() trong PHP

1. Sử dụng hàm die() và exit() trong PHP

1. 1. Hàm die() trong PHP

Hàm die() help in error message and do not stop program. Cú pháp của hàm die()

chết($tin nhắn);

Ví dụ, đoạn mã mở tệp bên dưới sẽ bị lỗi vì tệp gochocit không tồn tại. txt

Kết quả
Cảnh báo. fopen(gochocit. txt). Không thể mở luồng. Không có tệp hoặc thư mục như vậy trong C. \xampp\htdocs\gochocit\index. php trên dòng 2

Chúng ta có thể ngăn chặn lỗi bằng cách kiểm tra tệp có tồn tại hay không và sử dụng hàm die() để đưa ra thông báo về lỗi

Kết quả
Tập tin không tồn tại

1. 2. Hàm exit() trong PHP

Hàm exit() trong PHP giúp xuất một thông báo và kết thúc (thoát) script hiện tại. cú pháp

thoát (chuỗi trạng thái $ =?). lối ra vô hiệu (int $status). khoảng trống

Nếu trạng thái là một chuỗi thì sẽ đưa ra thông báo trước khi thoát. Nếu trạng thái là kiểu int (từ 0 đến 254) thì sẽ không có gì cả và thoát

2. Tùy chỉnh xử lý lỗi (trình xử lý lỗi tùy chỉnh) trong PHP

Khi xảy ra lỗi, chúng ta có thể tùy chỉnh xử lý lỗi và thông báo lỗi. Để làm công việc này, chúng ta cần định nghĩa một hàm xử lý lỗi với cú pháp như sau

error_function($error_level, $error_message, $error_file, $error_line, $error_context)

In which,

    • error_function is a function name. Các bạn có thể đặt lại tên hàm tùy chọn sao lưu đúng theo quy định tắt tên định danh (mã định danh) trong PHP
    • $error_level. Đây là tham số bắt buộc, phải là kiểu số nguyên. Tham số này là những hằng số lỗi đã được định nghĩa trước
    • $error_message. This is started tham số bắt buộc. Tham số này thông báo lỗi mà chúng tôi muốn đưa ra
    • $error_file. Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định tên tệp xảy ra lỗi
    • $error_line. Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định dòng số xảy ra lỗi
    • $error_context. Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định một mảng bao gồm các biến và giá trị của chúng khi xảy ra lỗi

Khi xảy ra lỗi, PHP sẽ tự xử lý lỗi theo cách của nó. Chúng ta cần sử dụng hàm set_error_handler() để thiết lập tùy chỉnh xử lý lỗi theo ý của mình. Cú pháp của hàm set_error_handler()

set_error_handler("lỗi_hàm");

with error_function is name of the error process that they ta tự định nghĩa

Error: [$errno]: $errstr in $errfile at line $errline"; } //set error handler set_error_handler("customError"); //This will generate error echo($test); ?>
Kết quả
Lỗi. [2]. Biến không xác định $test trong C. \xampp\htdocs\gochocit\index. php ở dòng 9

3. Hàm trigger_error() trong PHP

Có những trường hợp lệ, người dùng nhập những giá trị không hợp lệ. Chúng ta có thể sử dụng hàm trigger_error() để thông báo lỗi

Chúng ta cũng có thể sử dụng hàm trigger_error() với tùy chỉnh xử lý lỗi. Ví dụ

Error: [$errno]: $errstr in $errfile at line $errline"; die(); } //set error handler set_error_handler("customError", E_USER_WARNING); //trigger error $test=2; if ($test>=1) { trigger_error("Value must be 1 or below", E_USER_WARNING); } ?>
Kết quả
Lỗi. [512]. Giá trị phải từ 1 trở xuống trong C. \xampp\htdocs\gochocit\index. php ở dòng 14

4. Hàm error_log() trong PHP

Mặc định, PHP sẽ gửi nhật ký lỗi (có thể gọi là nhật ký lỗi) đến hệ thống ghi nhật ký trên máy chủ hoặc một tệp bất kỳ đó. This option option to configure error_log in file php. ban đầu. Nhưng nếu sử dụng hàm error_log() có thể giúp chúng ta gửi error log đến nơi mà chúng ta cần lưu trữ. Ví dụ, chúng ta muốn ghi nhật ký lỗi vào my-errors. đăng nhập trong PHP

Error: [$errno] $errstr
"; echo "Webmaster has been notified"; //write error log to my-errors.log file error_log("You messed up!\n", 3, "my-errors.log"); } //set error handler set_error_handler("customError",E_USER_WARNING); //trigger error $test=2; if ($test>=1) { trigger_error("Value must be 1 or below",E_USER_WARNING); } ?>

Hàm error_log() có thể giúp gửi nhật ký lỗi đến thư hoặc bất kỳ tệp nào khác. Các bạn có thể tham khảo thêm tại error_log PHP