Hướng dẫn is empty and null same in php? - trống và rỗng giống nhau trong php?

Tôi có một câu hỏi liên quan đến NULL trong PHP:

  $a = '';
  if($a == NULL) {
      echo 'is null';
  }

Tại sao tôi thấy là null khi $a là một chuỗi trống? Đó có phải là một lỗi?is null when $a is an empty string? Is that a bug?

Hướng dẫn is empty and null same in php? - trống và rỗng giống nhau trong php?

a_hardin

4,8354 Huy hiệu vàng31 Huy hiệu bạc40 Huy hiệu đồng4 gold badges31 silver badges40 bronze badges

Đã hỏi ngày 23 tháng 11 năm 2011 lúc 1:44Nov 23, 2011 at 1:44

0

Những gì bạn đang tìm kiếm là:

if($variable === NULL) {...}

Lưu ý ===. Khi sử dụng

if($variable === NULL) {...}
0, như bạn đã làm, PHP đối xử với null, false, 0, chuỗi trống và các mảng trống như bằng nhau.
When use
if($variable === NULL) {...}
0, as you did, PHP treats NULL, false, 0, the empty string, and empty arrays as equal.

Kkurian

3.7843 huy hiệu vàng30 Huy hiệu bạc48 Huy hiệu đồng3 gold badges30 silver badges48 bronze badges

Đã trả lời ngày 23 tháng 11 năm 2011 lúc 1:47Nov 23, 2011 at 1:47

Hướng dẫn is empty and null same in php? - trống và rỗng giống nhau trong php?

GodwingodwinGodwin

9,5295 Huy hiệu vàng38 Huy hiệu bạc57 Huy hiệu đồng5 gold badges38 silver badges57 bronze badges

8

Như được hiển thị trong bảng sau,

if($variable === NULL) {...}
1 tương đương với
if($variable === NULL) {...}
2 và
if($variable === NULL) {...}
3 có cùng chức năng của
if($variable === NULL) {...}
4. Bảng cũng cho thấy một số giá trị khó khăn liên quan đến so sánh
if($variable === NULL) {...}
5. (ϕ biểu thị một biến không được chỉ định.)

         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   

Đã trả lời ngày 25 tháng 3 năm 2013 lúc 4:18Mar 25, 2013 at 4:18

Nerdhandsome đẹp traiHandsome Nerd

16.3k20 Huy hiệu vàng93 Huy hiệu bạc168 Huy hiệu đồng20 gold badges93 silver badges168 bronze badges

6

Kiểm tra

if($variable === NULL) {...}
0 vs ===

if($variable === NULL) {...}
8 sẽ trả về true
if($variable === NULL) {...}
9 sẽ trả về true
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
0 sẽ trả về đúng
if($variable === NULL) {...}
9 would return true
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
0 would return true

nhưng trái lại

         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
1 sẽ trả về sai
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
2 sẽ trả về sai
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
3 sẽ trả về sai
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
2 would return false
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
3 would return false

Đã trả lời ngày 23 tháng 11 năm 2011 lúc 1:49Nov 23, 2011 at 1:49

Janchajanchajancha

4.9231 Huy hiệu vàng23 Huy hiệu bạc38 Huy hiệu đồng1 gold badge23 silver badges38 bronze badges

1

Không, nó không phải là một lỗi. Hãy xem các so sánh lỏng lẻo với == Bảng (Bảng thứ hai), cho thấy kết quả của việc so sánh từng giá trị trong cột đầu tiên với các giá trị trong các cột khác:

    TRUE    FALSE   1       0       -1      "1"     "0"     "-1"    NULL    array() "php"   ""

    [...]    

""  FALSE   TRUE    FALSE   TRUE    FALSE   FALSE   FALSE   FALSE   TRUE    FALSE   FALSE   TRUE

Ở đó, bạn có thể thấy rằng một chuỗi trống

         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
4 so với
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
5,
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
6, NULL hoặc
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
4 sẽ mang lại sự thật.

Thay vào đó, bạn có thể muốn sử dụng

         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
9 [Docs] hoặc so sánh nghiêm ngặt (Bảng thứ ba).

Đã trả lời ngày 23 tháng 11 năm 2011 lúc 1:48Nov 23, 2011 at 1:48

Hướng dẫn is empty and null same in php? - trống và rỗng giống nhau trong php?

Felix Klingfelix KlingFelix Kling

770K172 Huy hiệu vàng1069 Huy hiệu bạc1115 Huy hiệu đồng172 gold badges1069 silver badges1115 bronze badges

3

Đây không phải là một lỗi mà là hành vi bình thường PHP. Nó xảy ra vì toán tử

if($variable === NULL) {...}
0 trong PHP không kiểm tra loại.is not a bug but PHP normal behavior. It happens because the
if($variable === NULL) {...}
0 operator in PHP doesn't check for type.

'' == null == 0 == false

Nếu bạn cũng muốn kiểm tra xem các giá trị có cùng loại hay không, hãy sử dụng === thay thế. Để nghiên cứu sâu sắc sự khác biệt này, xin vui lòng đọc tài liệu chính thức.

Hướng dẫn is empty and null same in php? - trống và rỗng giống nhau trong php?

Mel

5.56810 Huy hiệu vàng39 Huy hiệu bạc42 Huy hiệu đồng10 gold badges39 silver badges42 bronze badges

Đã trả lời ngày 23 tháng 11 năm 2011 lúc 1:48Nov 23, 2011 at 1:48

Felix Klingfelix KlingAurelio De Rosa

770K172 Huy hiệu vàng1069 Huy hiệu bạc1115 Huy hiệu đồng8 gold badges47 silver badges71 bronze badges

Đây không phải là một lỗi mà là hành vi bình thường PHP. Nó xảy ra vì toán tử

if($variable === NULL) {...}
0 trong PHP không kiểm tra loại.

Nếu bạn cũng muốn kiểm tra xem các giá trị có cùng loại hay không, hãy sử dụng === thay thế. Để nghiên cứu sâu sắc sự khác biệt này, xin vui lòng đọc tài liệu chính thức.

MelJun 17, 2013 at 9:32

5.56810 Huy hiệu vàng39 Huy hiệu bạc42 Huy hiệu đồngdayuloli

Aurelio de Rosaaurelio de Rosa15 gold badges65 silver badges115 bronze badges

1

21.4K8 Huy hiệu vàng47 Huy hiệu bạc71 Huy hiệu đồng

Hướng dẫn is empty and null same in php? - trống và rỗng giống nhau trong php?

Nếu bạn sử dụng

if($variable === NULL) {...}
0, PHP sẽ xử lý một chuỗi trống hoặc mảng là
if($variable === NULL) {...}
5. Để phân biệt giữa
if($variable === NULL) {...}
5 và
    TRUE    FALSE   1       0       -1      "1"     "0"     "-1"    NULL    array() "php"   ""

    [...]    

""  FALSE   TRUE    FALSE   TRUE    FALSE   FALSE   FALSE   FALSE   TRUE    FALSE   FALSE   TRUE
5, hoặc sử dụng === hoặc
         empty    is_null 
         ==null  ===null  isset   array_key_exists
      ϕ |   T   |   T   |   F   |   F   
   null |   T   |   T   |   F   |   T   
     "" |   T   |   F   |   T   |   T   
     [] |   T   |   F   |   T   |   T
      0 |   T   |   F   |   T   |   T      
  false |   T   |   F   |   T   |   T   
   true |   F   |   F   |   T   |   T   
      1 |   F   |   F   |   T   |   T   
     \0 |   F   |   F   |   T   |   T   
9. Vì thế:Nov 28, 2019 at 20:28

Hướng dẫn is empty and null same in php? - trống và rỗng giống nhau trong php?

    TRUE    FALSE   1       0       -1      "1"     "0"     "-1"    NULL    array() "php"   ""

    [...]    

""  FALSE   TRUE    FALSE   TRUE    FALSE   FALSE   FALSE   FALSE   TRUE    FALSE   FALSE   TRUE
8 hoặc
    TRUE    FALSE   1       0       -1      "1"     "0"     "-1"    NULL    array() "php"   ""

    [...]    

""  FALSE   TRUE    FALSE   TRUE    FALSE   FALSE   FALSE   FALSE   TRUE    FALSE   FALSE   TRUE
9Foued MOUSSI

Đã trả lời ngày 17 tháng 6 năm 2013 lúc 9:323 gold badges16 silver badges35 bronze badges

dayulolidayuloli

15.4K15 Huy hiệu vàng65 Huy hiệu bạc115 Huy hiệu đồng

empty(str_replace(" " ,"" , $YOUR_DATA)) ? $YOUR_DATA = '--' : $YOUR_DATA;

Php 7 isset () vs clan () vs is_null ()Aug 10, 2020 at 9:26

Đã trả lời ngày 28 tháng 11 năm 2019 lúc 20:28Kopi Bryant

Foued moussifoued moussi14 silver badges28 bronze badges

4.4133 Huy hiệu vàng16 Huy hiệu bạc35 Huy hiệu Đồng stands for a variable without value. To check if a variable is NULL you can either use

'' == null == 0 == false
4 or the comparison (===) with NULL. Both ways, however, generate a warning if the variable is not defined. Similar to
'' == null == 0 == false
6 and
'' == null == 0 == false
7, which can be used as functions.

var_dump(is_null($var)); // true
var_dump($var === null); // true
var_dump(empty($var)); // true

Chỉ cần addon nếu ai đó đang đối phó với

'' == null == 0 == false
0, điều này sẽ hoạt động nếu giao dịch với
'' == null == 0 == false
0.

Thay thế nó bằng

'' == null == 0 == false
2 trước và kiểm tra nó bằng
'' == null == 0 == false
3Dec 5, 2020 at 20:15

Đã trả lời ngày 10 tháng 8 năm 2020 lúc 9:26thomas

Kopi Bryantkopi Bryant7 silver badges6 bronze badges

Null và trống có giống nhau không?

Sự khác biệt chính giữa NULL và trống là NULL được sử dụng để không liên quan đến không có gì trong khi trống được sử dụng để chỉ một chuỗi duy nhất có độ dài bằng không.null is used to refer to nothing while empty is used to refer to a unique string with zero length.

Null có được coi là trống không?

Ngôn ngữ lập trình Java phân biệt giữa NULL và các chuỗi trống.Một chuỗi trống là một thể hiện chuỗi có độ dài bằng không, trong khi một chuỗi null không có giá trị nào cả.Một chuỗi trống được biểu diễn là "".Đó là một chuỗi ký tự của các ký tự bằng không.a null string has no value at all. An empty string is represented as "" . It is a character sequence of zero characters.

Trống trong PHP có nghĩa là gì?

Định nghĩa và sử dụng hàm rỗng () kiểm tra xem một biến có trống hay không.Hàm này trả về sai nếu biến tồn tại và không trống, nếu không nó sẽ trả về đúng.checks whether a variable is empty or not. This function returns false if the variable exists and is not empty, otherwise it returns true.