Nó phụ thuộc vào những gì bạn đang tìm kiếm, nếu bạn chỉ muốn xem nó có trống hay không, chỉ cần sử dụng empty
vì nó kiểm tra xem nó đã được thiết lập hay chưa, nếu bạn muốn biết liệu cái gì đó đã được thiết lập hay chưa isset
.
Empty
kiểm tra xem biến đã được đặt chưa và nếu đúng thì nó sẽ kiểm tra giá trị null, "", 0, v.v.
Isset
chỉ cần kiểm tra xem nó đã được đặt chưa, nó có thể là bất kỳ thứ gì không phải là null
Với empty
, những thứ sau được coi là trống rỗng:
- "" (một chuỗi trống)
- 0 (0 dưới dạng số nguyên)
- 0.0 (0 dưới dạng số float)
- "0" (0 dưới dạng một chuỗi)
- VÔ GIÁ TRỊ
- SAI
- array () (một mảng trống)
- var $ var; (một biến được khai báo, nhưng không có giá trị trong một lớp)
Từ http://php.net/manual/en/ Chức năng.empty.php
Như đã đề cập trong các bình luận, việc thiếu cảnh báo cũng rất quan trọng với trống ()
Hướng dẫn sử dụng PHP cho biết
void () đối lập với (boolean) var, ngoại trừ việc không có cảnh báo nào được tạo khi biến không được đặt .
Liên quan tới Isset
Hướng dẫn sử dụng PHP cho biết
Isset () sẽ trả về FALSE nếu kiểm tra một biến đã được đặt thành NULL
Mã của bạn sẽ ổn khi:
<?php
$var = '23';
if (!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Ví dụ:
$var = "";
if(empty($var)) // true because "" is considered empty
{...}
if(isset($var)) //true because var is set
{...}
if(empty($otherVar)) //true because $otherVar is null
{...}
if(isset($otherVar)) //false because $otherVar is not set
{...}