Hướng dẫn is null and empty string the same in php? - null và chuỗi rỗng có giống nhau trong php không?

Null chỉ là một kiểu dữ liệu khác trong PHP, chỉ có một giá trị (NULL). Vì PHP là một ngôn ngữ được đánh máy lỏng lẻo, nên nó có thể gây nhầm lẫn cách nó xử lý các giá trị khác nhau. Since PHP is a loosly typed language, it can be confusing how it handles different values.

"", 0, "0", False, array(), Null đều được coi là sai trong PHP.

Null, tuy nhiên, là một loại động vật khác nhau. Sự không tương thích chính với việc sử dụng NULL là bạn không thể biết nếu nó ushet ().main incompatibility with using Null is that you cannot tell if it isset().

$x = false;
isset($x)  ->  true
echo $x    ->  ""

$y = null;
isset($y)  ->  false
echo $y    ->  ""

//$z is not set
isset($z)  ->  false
echo $z    ->  E_NOTICE

Vì vậy, NULL là lẻ theo nghĩa là nó không tuân theo các quy tắc biến bình thường trong PHP (ít nhất là một số). Trong hầu hết các trường hợp, nó là tốt.

Khi nói đến các cột cơ sở dữ liệu, NULL của PHP không có chỗ ở đó. Bạn thấy đấy, SQL là ngôn ngữ dựa trên chuỗi. NULL của SQL phải được đại diện bởi NULL mà không có báo giá. You see, SQL is a string based language. SQL's NULL must be represented by NULL with no quotes.

Vì vậy, nếu bạn muốn một trường trống, hãy đặt nó thành ""

INSERT INTO foo SET bar = ""

Nhưng nếu bạn muốn một trường null, hãy đặt nó thành NULL

INSERT INTO foo SET bar = NULL

SỰ KHÁC BIỆT LỚN.

Nhưng nếu bạn cố gắng chèn trực tiếp php null, nó sẽ thêm các ký tự không vào truy vấn, (khiến bạn có lỗi trống hoặc cú pháp, tùy thuộc vào việc bạn đã trích dẫn nó).

Null có tốt hơn chuỗi trống không?

Vì vậy, NULL là tốt hơn. Một chuỗi trống là hữu ích khi dữ liệu đến từ nhiều tài nguyên. NULL được sử dụng khi một số trường là tùy chọn và không rõ dữ liệu.

Bạn sẽ sử dụng các biến trong hầu hết mọi chương trình mà bạn viết bằng PHP. Hầu hết thời gian các biến này có giá trị và chúng tôi thường tạo chúng với giá trị ban đầu. Tuy nhiên, luôn có khả năng một số biến bạn đang sử dụng không được khởi tạo. Điều này có thể dẫn đến một cảnh báo từ PHP về việc sử dụng một biến không xác định.

Có thể có nhiều lý do cho các biến không xác định. Những người phổ biến nhất là bạn thực sự không xác định biến hoặc bạn đã phạm sai lầm khi sử dụng lại ở một nơi khác. Đây chỉ là một lỗi lập trình. Tuy nhiên, một khả năng khác có thể dẫn đến một biến không xác định là nó đã được xác định có điều kiện.

Bạn cũng có thể thấy rằng một biến có giá trị NULL. Điều này cũng có thể xảy ra vì một số lý do. Ví dụ, biến có thể không được khởi tạo với một giá trị. Hoặc giá trị null có thể được trả về từ một hàm để báo hiệu một số loại lỗi.

Định nghĩa

Hãy bắt đầu với một số định nghĩa.

  1. INSERT INTO foo SET bar = ""
    
    0: Bạn có thể sử dụng
    INSERT INTO foo SET bar = ""
    
    0 để xác định xem một biến được khai báo và khác với
    INSERT INTO foo SET bar = ""
    
    5.
  2. INSERT INTO foo SET bar = ""
    
    1: Nó được sử dụng để xác định xem biến có tồn tại hay không và giá trị của biến không đánh giá là
    INSERT INTO foo SET bar = ""
    
    7.
  3. INSERT INTO foo SET bar = ""
    
    2: Hàm này được sử dụng để kiểm tra xem một biến là
    INSERT INTO foo SET bar = ""
    
    5.

PHP INSERT INTO foo SET bar = "" 0 so với INSERT INTO foo SET bar = "" 1

Như chúng ta đã thấy từ các định nghĩa,

INSERT INTO foo SET bar = ""
0 sẽ trả về
INSERT INTO foo SET bar = NULL
3 nếu chúng ta đã xác định biến trước đó và đặt giá trị của nó thành một thứ khác ngoài NULL. Điều này có thể bao gồm
INSERT INTO foo SET bar = NULL
5, một chuỗi trống hoặc
INSERT INTO foo SET bar = ""
7. Mặt khác,
INSERT INTO foo SET bar = ""
1 sẽ trả về
INSERT INTO foo SET bar = NULL
3 Bất cứ khi nào giá trị biến được đặt thành một cái gì đó đánh giá thành ________ 17, chúng tôi gọi các giá trị "Falsey" này. Ví dụ về các giá trị sai bao gồm
INSERT INTO foo SET bar = NULL
5, chuỗi trống
1 và chuỗi 
2, một mảng trống, NULL hoặc tất nhiên là boolean 
INSERT INTO foo SET bar = ""
7.

Một điểm tương đồng giữa ____10 và

INSERT INTO foo SET bar = ""
1 là cả hai đều là các cấu trúc ngôn ngữ và do đó không thể được gọi bằng cách sử dụng các hàm biến.

Đoạn mã sau đây sẽ giải thích sự khác biệt giữa hai cái này.

Lưu ý rằng

INSERT INTO foo SET bar = ""
1 có thể được viết bằng hàm
INSERT INTO foo SET bar = ""
0:

Tất nhiên, thường dễ sử dụng chức năng

INSERT INTO foo SET bar = ""
1 tích hợp.

PHP INSERT INTO foo SET bar = "" 0 so với INSERT INTO foo SET bar = "" 2

Hàm

INSERT INTO foo SET bar = ""
2 trả về
INSERT INTO foo SET bar = NULL
3 nếu giá trị của một biến đã được đặt rõ ràng thành NULL. Nếu không, nó chỉ đơn giản là trả về
INSERT INTO foo SET bar = ""
7. Mặt khác,
INSERT INTO foo SET bar = ""
0 sẽ trả về
INSERT INTO foo SET bar = NULL
3 miễn là một biến được xác định và giá trị của nó không phải là NULL.

Dưới đây là một ví dụ cơ bản để hiển thị sự khác biệt giữa chúng.

PHP & nbsp; ________ 11 so với INSERT INTO foo SET bar = "" 2

& Nbsp; ________ 11 & nbsp; hàm trả về & nbsp; ________ 23 & nbsp; nếu giá trị của một biến đánh giá là

INSERT INTO foo SET bar = ""
7. Điều này có thể có nghĩa là chuỗi trống, NULL, số nguyên
INSERT INTO foo SET bar = NULL
5 hoặc một mảng không có phần tử. Mặt khác, ________ 12 & nbsp; sẽ trả về & nbsp; ________ 23 & nbsp; chỉ khi biến có giá trị NULL.

Dưới đây là một ví dụ cơ bản để hiển thị sự khác biệt giữa chúng.

 'Monty', 'last_name' => '', 'age' => '83', 'fav_movie' => NULL];

if(empty($person['last_name'])) {
    if(is_null($person['last_name'])) {
        echo 'The last name is set to NULL.';
    } else {
        echo 'The last name is probably an empty string.';
    }
}
// Output: The last name is probably an empty string.

if(is_null($person['fav_movie'])) {
    echo $person['first_name'].' did not specify a favorite movie.';
}
// Output: Monty did not specify a favorite movie.

PHP & nbsp; ________ 11 so với INSERT INTO foo SET bar = "" 2

& Nbsp; ________ 11 & nbsp; hàm trả về & nbsp; ________ 23 & nbsp; nếu giá trị của một biến đánh giá là

INSERT INTO foo SET bar = ""
7. Điều này có thể có nghĩa là chuỗi trống, NULL, số nguyên
INSERT INTO foo SET bar = NULL
5 hoặc một mảng không có phần tử. Mặt khác, ________ 12 & nbsp; sẽ trả về & nbsp; ________ 23 & nbsp; chỉ khi biến có giá trị NULL.

Những điểm quan trọng cần nhớ

Có hai mẹo mà bạn có thể sử dụng để viết mã ngắn gọn hơn và tránh các lỗi trong tương lai.

1. Không giống như INSERT INTO foo SET bar = "" 1 và INSERT INTO foo SET bar = "" 2, bạn có thể chuyển nhiều giá trị đến INSERT INTO foo SET bar = "" 0 cùng một lúc để kiểm tra đồng thời xem có ai trong số chúng không được xác định hoặc được đặt thành NULL không. Trong trường hợp đó, INSERT INTO foo SET bar = "" 0 sẽ chỉ trả về INSERT INTO foo SET bar = NULL 3 nếu không có giá trị nào được truyền là NULL.

2. Không sử dụng

 'Monty', 'last_name' => '', 'age' => '83', 'fav_movie' => NULL];

if(empty($person['last_name'])) {
    if(is_null($person['last_name'])) {
        echo 'The last name is set to NULL.';
    } else {
        echo 'The last name is probably an empty string.';
    }
}
// Output: The last name is probably an empty string.

if(is_null($person['fav_movie'])) {
    echo $person['first_name'].' did not specify a favorite movie.';
}
// Output: Monty did not specify a favorite movie.
6 để kiểm tra xem giá trị là NULL. Điều này sẽ cung cấp một dương tính giả cho các giá trị sai như một chuỗi trống đánh giá thành
INSERT INTO foo SET bar = ""
7.

Suy nghĩ cuối cùng

Hướng dẫn is null and empty string the same in php? - null và chuỗi rỗng có giống nhau trong php không?

Freelancer, người hướng dẫn

Tôi là một nhà phát triển đầy đủ, người cũng thích viết các hướng dẫn. Sau khi thử một loạt những điều cho đến năm thứ hai của đại học, tôi quyết định làm việc về các kỹ năng phát triển web của mình. Bắt đầu chỉ với HTML và CSS, tôi tiếp tục tiến về phía trước và có được kinh nghiệm trong PHP, JavaScript và Python. Tôi thường dành thời gian rảnh của mình hoặc làm việc cho một số dự án phụ hoặc đi du lịch xung quanh.

Là một chuỗi trống null php?

is_null () hàm trống () trả về true nếu giá trị của một biến đánh giá là sai.Điều này có thể có nghĩa là chuỗi trống, null, số nguyên 0 hoặc một mảng không có phần tử.Mặt khác, is_null () sẽ chỉ trả về true nếu biến có giá trị null.The empty() function returns true if the value of a variable evaluates to false . This could mean the empty string, NULL , the integer 0 , or an array with no elements. On the other hand, is_null() will return true only if the variable has the value NULL .

Chuỗi trống và null có giống nhau khô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.Một chuỗi null được biểu diễn bởi null.. An empty string is represented as "" . It is a character sequence of zero characters. A null string is represented by null .

Chuỗi trống trong PHP là gì?

Hàm trố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.Các giá trị sau đây đánh giá là trống: 0. 0.0.. This function returns false if the variable exists and is not empty, otherwise it returns true. The following values evaluates to empty: 0. 0.0.

Null có tốt hơn chuỗi trống không?

Vì vậy, NULL là tốt hơn.Một chuỗi trống là hữu ích khi dữ liệu đến từ nhiều tài nguyên.NULL được sử dụng khi một số trường là tùy chọn và không rõ dữ liệu.NULL is better. An empty string is useful when the data comes from multiple resources. NULL is used when some fields are optional, and the data is unknown.