Hướng dẫn php empty 0 returns true - php rỗng 0 trả về true

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();
}

Hướng dẫn php empty 0 returns true - php rỗng 0 trả về true

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

if (isset($x) && x != "") {//for strings
    doSomething();
}
0): bool

Aidan1103 tại Yahoo Dot Com ¶

mlibazisi mabandla

ehsmeng ¶

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 ¶

if (isset($x) && x != "") {//for strings
    doSomething();
}
2 if
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();
}
5

Ví dụ #2 trống () trên chuỗi offsetsempty() on String Offsets

if (isset($x) && x != "") {//for strings
    doSomething();
}
6

Ví 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();
}
7

if (isset($x) && x != "") {//for strings
    doSomething();
}
8

if (isset($x) && x != "") {//for strings
    doSomething();
}
9

bool(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)2

anh 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)5

Martin 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 != 00

empty($var) && $var != 01

empty($var) && $var != 02

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 != 04

empty($var) && $var != 05

empty($var) && $var != 06

wranvaud tại gmail dot com ¶

5 năm trước

empty($var) && $var != 07

Claudio Galdiolo ¶

5 năm trước

empty($var) && $var != 08

Claudio Galdiolo ¶

11 năm trước

empty($var) && $var != 09

phpsort ¶

Denobocation-bozic et yahoo.com

"0"0

"0"1

"0"2

"0"3

13 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

empty0

empty1

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
4

5 năm trước

8 năm trước

empty3

empty4

empty5

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
4

wranvaud tại gmail dot com ¶

Denobocation-bozic et yahoo.com

empty7

empty8

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

$_POST0

$_POST1

$_POST2

$_POST3

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
4

Denobocation-bozic et yahoo.com

Denobocation-bozic et yahoo.com

$_POST5

$_POST6

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
4

13 năm trước

11 năm trước

$_POST8

$_POST9

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();
}
00

if (isset($x) && x != "") {//for strings
    doSomething();
}
01

if (isset($x) && x != "") {//for strings
    doSomething();
}
02

bool(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();
}
04

if (isset($x) && x != "") {//for strings
    doSomething();
}
05

bool(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();
}
07

if (isset($x) && x != "") {//for strings
    doSomething();
}
08

bool(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();
}
10

if (isset($x) && x != "") {//for strings
    doSomething();
}
11

if (isset($x) && x != "") {//for strings
    doSomething();
}
12

if (isset($x) && x != "") {//for strings
    doSomething();
}
13

if (isset($x) && x != "") {//for strings
    doSomething();
}
14

if (isset($x) && x != "") {//for strings
    doSomething();
}
15

bool(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();
}
17

if (isset($x) && x != "") {//for strings
    doSomething();
}
9

if (isset($x) && x != "") {//for strings
    doSomething();
}
19

Claudio Galdiolo ¶

phpsort ¶

if (isset($x) && x != "") {//for strings
    doSomething();
}
20

if (isset($x) && x != "") {//for strings
    doSomething();
}
21

if (isset($x) && x != "") {//for strings
    doSomething();
}
22

bool(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();
}
24

if (isset($x) && x != "") {//for strings
    doSomething();
}
25

if (isset($x) && x != "") {//for strings
    doSomething();
}
26

if (isset($x) && x != "") {//for strings
    doSomething();
}
27

if (isset($x) && x != "") {//for strings
    doSomething();
}
28

Denobocation-bozic et yahoo.com

5 năm trước

if (isset($x) && x != "") {//for strings
    doSomething();
}
29

if (isset($x) && x != "") {//for strings
    doSomething();
}
30

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
4

Claudio Galdiolo ¶

phpsort ¶

if (isset($x) && x != "") {//for strings
    doSomething();
}
32

if (isset($x) && x != "") {//for strings
    doSomething();
}
33

if (isset($x) && x != "") {//for strings
    doSomething();
}
34