Theo tài liệu PHP, các biểu thức sau đây trả về đúng khi gọi empty[$var]
- "" [một chuỗi trống]
- 0 [0 như một số nguyên]
- 0,0 [0 như một chiếc phao]
- "0" [0 dưới dạng chuỗi]
- VÔ GIÁ TRỊ
- SAI
- mảng [] [một mảng trống]
- $ var; [một biến được khai báo, nhưng không có giá trị]
Tôi đã tìm thấy cách "giải quyết" vấn đề bằng cách sử dụng empty[$var] && $var != 0
nhưng tại sao các nhà phát triển PHP đã làm điều đó?
Tôi nghĩ rằng thật nực cười, giả sử bạn có mã này:
if [empty[$_POST["X"]]] {
doSomething[];
}
Tôi nghĩ rằng "0"
không trống, trống rỗng là khi không có gì!
Có lẽ tốt hơn là sử dụng
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
yivi
38.3K18 Huy hiệu vàng100 Huy hiệu bạc123 Huy hiệu đồng18 gold badges100 silver badges123 bronze badges
Hỏi ngày 3 tháng 8 năm 2014 lúc 1:50Aug 3, 2014 at 1:50
6
empty
Rằng phản ánh sự lựa chọn của Php về các giá trị sai-y:
Khi chuyển đổi thành Boolean, các giá trị sau được coi là sai:
- chính Boolean Sai
- Số nguyên 0 [không]
- phao 0,0 [không]
- Chuỗi trống và chuỗi "0"
- một mảng có phần tử không
- ...
Theo như tại sao PHP hoạt động theo cách này, hoặc tại sao chức năng trống tuân theo - tốt, đó chỉ là như vậy.
Cân nhắc sử dụng strlen[$x]
[điều này đặc biệt phù hợp với các nguồn như $_POST
là tất cả các giá trị chuỗi] để xác định xem có chuỗi không trống hay không, bao gồm "0".
Mẫu cuối cùng tôi sử dụng sau đó sẽ là: isset[$x] && strlen[$x]
, với bất kỳ xử lý bổ sung nào được áp dụng khi biết có một số dữ liệu bài đăng.
Đã trả lời ngày 3 tháng 8 năm 2014 lúc 2:14Aug 3, 2014 at 2:14
user2864740user2864740user2864740
58.3K14 Huy hiệu vàng136 Huy hiệu bạc210 Huy hiệu đồng14 gold badges136 silver badges210 bronze badges
3
Tom tại Tomwardrop Dot Com ¶
Marko dot crni tại gmail dot com ¶ — Determine whether a variable is empty
12 năm trước
Chris Dot Wisefool tại Gmail Dot Com ¶[mixed
0]: boolif [isset[$x] && x != ""] {//for strings
doSomething[];
}
Aidan1103 tại Yahoo Dot Com ¶
mlibazisi mabandlaehsmeng ¶
Paul tại Worldwithoutwalls dot co dot uk ¶empty[] is essentially the concise equivalent to !isset[$var] || $var == false.
18 năm trước
mcfogw tại gmail dot com ¶
2 if if [isset[$x] && x != ""] {//for strings
doSomething[];
}
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
1 does not exist or has a value that is empty or
equal to zero, aka falsey, see conversion to boolean. Otherwise returns if [isset[$x] && x != ""] {//for strings
doSomething[];
}
4. Ví dụ
Ví dụ #1 Một so sánh đơn giản trống [] / isset [].empty[] / isset[] comparison.
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
5Ví dụ #2 trống [] trên chuỗi offsetsempty[] on String Offsets
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
6Ví dụ trên sẽ xuất ra:
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]
Ghi chú
Lưu ý: Bởi vì đây là một cấu trúc ngôn ngữ và không phải là một hàm, nó không thể được gọi là sử dụng các hàm biến hoặc các đối số được đặt tên.: Because this is a language construct and not a function, it cannot be called using variable functions, or named arguments.
Ghi chú::
Khi sử dụng trống [] trên các thuộc tính đối tượng không thể truy cập, phương thức quá tải __isset [] sẽ được gọi, nếu được khai báo.empty[] on inaccessible object properties, the __isset[] overloading method will be called, if declared.
Xem thêm
- ISSET [] - Xác định xem một biến được khai báo và khác với NULL
- __isset[]
- unset [] - Und đặt một biến đã cho
- Array_Key_Exists [] - Kiểm tra xem khóa hoặc chỉ mục đã cho có tồn tại trong mảng
- Count [] - Đếm tất cả các phần tử trong một mảng hoặc trong một đối tượng có thể đếm được
- strlen [] - Nhận độ dài chuỗi
- Các bảng so sánh loại
Nanhe Kumar ¶ ¶
8 năm trước
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
7if [isset[$x] && x != ""] {//for strings
doSomething[];
}
8if [isset[$x] && x != ""] {//for strings
doSomething[];
}
9bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]0
Janci ¶ ¶
13 năm trước
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]1
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]2
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]3
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Steven tại Nevvix Dot Com ¶ ¶
11 năm trước
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]5
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]6
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Thông tin tại Ensostudio Dot Ru ¶ ¶
1 năm trước
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]8
Markmanning tại Gmail Dot Com ¶ ¶
3 năm trước
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]9
empty[$var]
0
empty[$var]
1
empty[$var]
2anh em chấm của bạn dot t tại hotmail dot com ¶
7 năm trước
empty[$var]
3
empty[$var]
4
empty[$var]
5Martin Dot Aarhof tại Gmail Dot Com ¶ ¶
10 năm trước
empty[$var]
6
empty[$var]
7
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Ẩn danh ¶ ¶
14 năm trước
empty[$var]
9
empty[$var] && $var != 0
0
empty[$var] && $var != 0
1
empty[$var] && $var != 0
2
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Chrisdmiddleton tại Gmail Dot Com ¶ ¶
8 năm trước
empty[$var] && $var != 0
4
empty[$var] && $var != 0
5
empty[$var] && $var != 0
6wranvaud tại gmail dot com ¶ ¶
5 năm trước
empty[$var] && $var != 0
7
Claudio Galdiolo ¶ ¶
5 năm trước
empty[$var] && $var != 0
8
Claudio Galdiolo ¶ ¶
11 năm trước
empty[$var] && $var != 0
9
phpsort ¶ ¶
Denobocation-bozic et yahoo.com
"0"
0
"0"
1
"0"
2
"0"
313 năm trước ¶
14 năm trước
"0"
4
"0"
5
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Chrisdmiddleton tại Gmail Dot Com ¶ ¶
8 năm trước
"0"
7
wranvaud tại gmail dot com ¶ ¶
11 năm trước
"0"
8
"0"
9
empty
0
empty
1
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
5 năm trước ¶
8 năm trước
empty
3
empty
4
empty
5
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
wranvaud tại gmail dot com ¶ ¶
Denobocation-bozic et yahoo.com
empty
7
empty
8
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
13 năm trước ¶
8 năm trước
strlen[$x]
0
strlen[$x]
1
strlen[$x]
2
strlen[$x]
3
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
wranvaud tại gmail dot com ¶ ¶
5 năm trước
strlen[$x]
5
strlen[$x]
6
strlen[$x]
7
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Claudio Galdiolo ¶ ¶
phpsort ¶
strlen[$x]
9
$_POST
0
$_POST
1
$_POST
2
$_POST
3
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Denobocation-bozic et yahoo.com ¶
Denobocation-bozic et yahoo.com
$_POST
5
$_POST
6
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
13 năm trước ¶
11 năm trước
$_POST
8
$_POST
9
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Tom tại Tomwardrop Dot Com ¶ ¶
3 năm trước
isset[$x] && strlen[$x]
1
anh em chấm của bạn dot t tại hotmail dot com ¶
14 năm trước
isset[$x] && strlen[$x]
2
isset[$x] && strlen[$x]
3
isset[$x] && strlen[$x]
4
isset[$x] && strlen[$x]
5
bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Chrisdmiddleton tại Gmail Dot Com ¶ ¶
8 năm trước
isset[$x] && strlen[$x]
7
wranvaud tại gmail dot com ¶ ¶
5 năm trước
isset[$x] && strlen[$x]
8
isset[$x] && strlen[$x]
9
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
00if [isset[$x] && x != ""] {//for strings
doSomething[];
}
01if [isset[$x] && x != ""] {//for strings
doSomething[];
}
02bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Claudio Galdiolo ¶ ¶
8 năm trước
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
04if [isset[$x] && x != ""] {//for strings
doSomething[];
}
05bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
wranvaud tại gmail dot com ¶ ¶
10 năm trước
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
07if [isset[$x] && x != ""] {//for strings
doSomething[];
}
08bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Ẩn danh ¶ ¶
8 năm trước
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
10if [isset[$x] && x != ""] {//for strings
doSomething[];
}
11if [isset[$x] && x != ""] {//for strings
doSomething[];
}
12if [isset[$x] && x != ""] {//for strings
doSomething[];
}
13if [isset[$x] && x != ""] {//for strings
doSomething[];
}
14if [isset[$x] && x != ""] {//for strings
doSomething[];
}
15bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
wranvaud tại gmail dot com ¶ ¶
5 năm trước
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
17if [isset[$x] && x != ""] {//for strings
doSomething[];
}
9if [isset[$x] && x != ""] {//for strings
doSomething[];
}
19Claudio Galdiolo ¶ ¶
phpsort ¶
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
20if [isset[$x] && x != ""] {//for strings
doSomething[];
}
21if [isset[$x] && x != ""] {//for strings
doSomething[];
}
22bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Denobocation-bozic et yahoo.com ¶
phpsort ¶
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
24if [isset[$x] && x != ""] {//for strings
doSomething[];
}
25if [isset[$x] && x != ""] {//for strings
doSomething[];
}
26if [isset[$x] && x != ""] {//for strings
doSomething[];
}
27if [isset[$x] && x != ""] {//for strings
doSomething[];
}
28Denobocation-bozic et yahoo.com ¶
5 năm trước
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
29if [isset[$x] && x != ""] {//for strings
doSomething[];
}
30bool[true] bool[false] bool[false] bool[false] bool[true] bool[true]4
Claudio Galdiolo ¶ ¶
phpsort ¶
if [isset[$x] && x != ""] {//for strings
doSomething[];
}
32if [isset[$x] && x != ""] {//for strings
doSomething[];
}
33if [isset[$x] && x != ""] {//for strings
doSomething[];
}
34