Khái niệm, định nghĩa Hàm empty() trong PHP là gì?

Hàm empty() trong php dùng để kiểm tra một biến nào đó có giá trị rỗng hoặc chưa được khởi tạo hay không. 

Giả sử ta có biến $var và giá trị của nó sẽ là rỗng nếu nó nằm một trong các trường hợp sau:

  • $var = 0 hoặc $var = '0'
  • $var = NULL
  • $var = '';
  • $var = FALSE
  • $var không tồn tại

Như vậy có 6 trường hợp hàm empty() sẽ đúng. Tuy nhiên trường hợp cuối cùng là $var không tồn tại là hơi đặc biệt một chút, vấn đề này rất giống với hàmisset() đúng không nào.

Ví dụ: Ví dụ các trường hợp trên
$var '0';
var_dump(empty($var));
$var = 0;
var_dump(empty($var));
$var '';
var_dump(empty($var));
$var = FALSE;
var_dump(empty($var));
$var = NULL;
var_dump(empty($var));
var_dump(empty($bien_khong_ton_tai));

Trong đó ở ví dụ thứ 6 biến $bien_khong_ton_tai chưa được khởi tạo nhưng vẫn không bị lỗi và khi sử dụng nó trong hàm empty() thì sẽ trả về TRUE.

Vậy khi nào nên sử dụng hàm empty()?

Thông thường chúng ta sử dụng hàm empty() để validate dữ liệu bởi vì nó có thêm chức năng của hàm isset() nên sẽ không bao giờ xuất hiện lỗi.

Vi dụ: kiểm tra dữ liệu khi người dùng đăng nhập

if (empty($_POST['username'])){

    echo 'Bạn chưa nhập tên đăng nhập';

}

Nếu sử dụng hàm isset() thì ta sẽ làm như sau:


$username = isset($_POST['username']) ? $_POST['username'] : '';

$password = isset($_POST['password']) ? $_POST['password'] : '';

if ($username == '') {

    echo 'Bạn chưa nhập tên đăng nhập';

}

 

if ($password == '') {

    echo 'Bạn chưa nhập mật khẩu';

}