Hàm isset() và hàm empty() là hai hàm phổ biến trong PHP, thường được sử dụng để kiểm tra trạng thái của các biến. Dưới đây là chi tiết về từng hàm và khi nào nên sử dụng chúng:

1. Hàm isset()

Cú pháp:

bool isset(mixed $var, mixed ...$vars)

Chức năng:

Hàm isset() kiểm tra xem một biến có tồn tại và khác giá trị null hay không. Nó trả về giá trị true nếu biến tồn tại và không phải là null, ngược lại trả về false.

Ví dụ:

$var1 = "Hello";
$var2 = null;

var_dump(isset($var1));  // Kết quả: true
var_dump(isset($var2));  // Kết quả: false
var_dump(isset($var3));  // Kết quả: false (biến chưa được khai báo)

Các điểm quan trọng:

  • Nếu biến chưa được khai báo hoặc giá trị của biến là null, isset() sẽ trả về false.
  • isset() có thể kiểm tra nhiều biến cùng lúc, và chỉ trả về true nếu tất cả các biến được truyền vào đều tồn tại và khác null.
$var1 = "Hello";
$var2 = 10;

var_dump(isset($var1, $var2));  // Kết quả: true
var_dump(isset($var1, $var3));  // Kết quả: false

Khi nào sử dụng:

  • Khi bạn muốn kiểm tra xem biến đã được khai báo hay chưa.
  • Khi bạn muốn xác minh rằng giá trị của biến không phải là null.

2. Hàm empty()

Cú pháp:

bool empty(mixed $var)

Chức năng:

Hàm empty() kiểm tra xem một biến có “trống” hay không. Biến được coi là “trống” nếu có một trong các giá trị sau:

  • "" (chuỗi rỗng)
  • 0 (số 0)
  • 0.0 (số thực 0)
  • "0" (chuỗi chứa số 0)
  • null
  • false
  • Mảng rỗng []
  • Đối tượng không có thuộc tính

Ví dụ:

$var1 = "";
$var2 = 0;
$var3 = null;

var_dump(empty($var1));  // Kết quả: true
var_dump(empty($var2));  // Kết quả: true
var_dump(empty($var3));  // Kết quả: true

Các điểm quan trọng:

  • Hàm empty() không tạo ra lỗi nếu biến chưa được khai báo, mà nó sẽ trả về true trong trường hợp này.
  • Nó kiểm tra nhiều trạng thái của biến, từ giá trị rỗng, số 0 cho đến null.

Khi nào sử dụng:

  • Khi bạn cần kiểm tra xem một biến có giá trị “trống” hay không (ví dụ, trước khi xử lý form dữ liệu).
  • Khi bạn muốn xác minh rằng một biến không chứa bất kỳ giá trị có nghĩa nào.

So sánh isset()empty():

  • isset() chỉ kiểm tra xem biến có tồn tại và khác null không.
  • empty() kiểm tra xem biến có “trống” hay không, bao gồm nhiều trạng thái hơn như 0, false, mảng rỗng, chuỗi rỗng, và null.

Ví dụ so sánh:

$var = 0;

var_dump(isset($var));  // Kết quả: true (biến tồn tại và không phải là null)
var_dump(empty($var));  // Kết quả: true (0 được coi là "trống")

Tóm tắt:

  • Sử dụng isset() khi bạn chỉ cần kiểm tra xem biến có tồn tại và khác null không.
  • Sử dụng empty() khi bạn cần kiểm tra xem biến có giá trị không có nghĩa nào (rỗng, 0, null, false,…) để tránh xử lý những dữ liệu không mong muốn.