test if all multiarray's are empty
function is_multiArrayEmpty($multiarray) {
if(is_array($multiarray) and !empty($multiarray)){
$tmp = array_shift($multiarray);
if(!is_multiArrayEmpty($multiarray) or !is_multiArrayEmpty($tmp)){
return false;
}
return true;
}
if(empty($multiarray)){
return true;
}
return false;
}
$testCase = array (
0 => '',
1 => "",
2 => null,
3 => array(),
4 => array(array()),
5 => array(array(array(array(array())))),
6 => array(array(), array(), array(), array(), array()),
7 => array(array(array(), array()), array(array(array(array(array(array(), array())))))),
8 => array(null),
9 => 'not empty',
10 => "not empty",
11 => array(array("not empty")),
12 => array(array(),array("not empty"),array(array()))
);
________số 8_______
OUTPUT:
========
0 is_multiArrayEmpty= 1
1 is_multiArrayEmpty= 1
2 is_multiArrayEmpty= 1
3 is_multiArrayEmpty= 1
4 is_multiArrayEmpty= 1
5 is_multiArrayEmpty= 1
6 is_multiArrayEmpty= 1
7 is_multiArrayEmpty= 1
8 is_multiArrayEmpty= 1
9 is_multiArrayEmpty=
10 is_multiArrayEmpty=
11 is_multiArrayEmpty=
12 is_multiArrayEmpty=
Nói cách khác, chỉ những biến không tồn tại (hoặc biến có giá trị NULL nghiêm ngặt) mới trả về FALSE trên hàm isset(). Tất cả các biến có bất kỳ loại giá trị nào, cho dù đó là 0, chuỗi văn bản trống, v.v. sẽ trở lại TRUE
Một điều khác bạn cần biết là các vùng văn bản và hộp văn bản trong biểu mẫu sẽ được gửi với giá trị “” thay vì giá trị NULL tới mảng if(!empty($_POST[myField])) { //Do my PHP code }5
Do đó, nếu bạn đang cố gắng xử lý một biểu mẫu và bạn muốn chắc chắn rằng người đó đã nhập nội dung nào đó vào trường, tốt hơn hết là bạn nên kiểm tra xem liệu giá trị biểu mẫu có trống hay không, hơn là kiểm tra xem liệu giá trị đó có trống không. Mặt khác, nếu bạn đang cố kiểm tra giá trị của nút radio hoặc hộp tổ hợp trong đó một trong các giá trị có thể là “0”, thì bạn nên sử dụng hàm isset()
Đối với một vài bộ xử lý biểu mẫu đầu tiên mà tôi làm việc, tôi đã sử dụng mã sau đây một cách nhất quán
if(isset($_POST[myField]) && $_POST[myField] != "") { //Do my PHP code }Một cách hiệu quả hơn để làm điều này rõ ràng là sử dụng
if(!empty($_POST[myField])) { //Do my PHP code }Chỉ là một mẹo nhanh cho những người đấu tranh với điều này. Có hai điểm chính trong bài viết này
1) isset() và empty() không hoàn toàn trái ngược nhau. Họ thực sự kiểm tra hai điều rất khác nhau. Do đó, sử dụng empty()0 không giống như sử dụng empty(), cũng không phải là “. trống” giống như sử dụng isset(). Đó là một điều tốt, nhưng đó không phải là điều mà bạn thường nhận ra ngay lập tức
2) Biểu mẫu sẽ gửi giá trị trống đến mảng if(!empty($_POST[myField])) { //Do my PHP code }5 thay vì gửi giá trị NULL. Do đó, biến mà bạn thường kiểm tra từ biểu mẫu của mình, theo nghĩa chặt chẽ nhất của từ này, là “set”. Tuy nhiên, nó vẫn có thể có giá trị “rỗng”. Do đó, nếu bạn thực sự chỉ muốn kiểm tra xem biến có tồn tại hay không, ngay cả khi nó có giá trị rỗng (hoặc nếu bạn muốn kiểm tra xem biến có tồn tại hay không), thì bạn nên sử dụng hàm isset(). Tuy nhiên, nếu bạn muốn kiểm tra xem biến có (hoặc không có) giá trị trống hay không, thì tốt hơn hết bạn nên sử dụng hàm empty()5
Tôi hy vọng điều đó sẽ giúp ai đó ngoài kia tránh được một số lỗi mã hóa mà tôi đã mắc phải khi bắt đầu trò chơi. Vui thích
Bạn có thể sử dụng hàm PHP empty() để tìm hiểu xem một biến có trống hay không. Một biến được coi là rỗng nếu nó không tồn tại hoặc nếu giá trị của nó bằng FALSE
Hãy thử ví dụ sau để hiểu cơ bản chức năng này hoạt động như thế nào
";
if(empty($var2)){
echo 'This line is printed, because the $var2 is empty.';
}
echo "
";
if(empty($var3)){
echo 'This line is printed, because the $var3 is empty.';
}
echo "
";
if(empty($var4)){
echo 'This line is printed, because the $var4 is empty.';
}
echo "
";
if(empty($var5)){
echo 'This line is printed, because the $var5 is empty.';
}
?>
Ghi chú. Hàm empty() không tạo cảnh báo nếu biến không tồn tại. Điều đó có nghĩa là empty() tương đương với !isset($var) || $var == false