Sự khác biệt giữa NULL và null trong PHP


85

Có sự khác biệt giữa NULLnulltrong PHP không? Đôi khi chúng dường như có thể hoán đổi cho nhau và đôi khi không.

chỉnh sửa: vì một số lý do khi tôi đọc tài liệu được liên kết đến trong câu trả lời (trước khi đăng câu hỏi này), tôi đọc nó là "phân biệt chữ hoa chữ thường" thay vì "phân biệt chữ hoa chữ thường", đó là toàn bộ lý do tôi đăng câu hỏi này ngay từ đầu .. .


2
NULL=nullvà ngược lại trừ khi một kết quả khớp chính xác trong DB được truy vấn.
Funk Forty Niner.

@FunkFortyNiner không có DB nào liên quan đến câu hỏi này. Câu hỏi là về ngôn ngữ lập trình.
Pablo Pazos

@PabloPazos tại sao bạn lại ping tôi sau 6 năm trôi qua? Thêm vào đó, nếu bạn đọc lại bình luận của tôi, bạn sẽ thấy sự liên quan có thể xảy ra. Nhìn vào từ khóa "trừ khi" có thể là sự thật.
Funk Forty Niner

1
@PabloPazos hơi nực cười khi đưa ra nhận xét như của bạn, những gì anh ấy nói hoàn toàn có liên quan và hữu ích. Nếu ai đó đi cùng và xem xét vấn đề này trong khi có lỗi DB, nó sẽ giúp nhanh chóng tìm ra giải pháp, những người không liên quan cũng sẽ tiếp tục và xem xét một câu trả lời khác.
Kenziiee Flavius ​​21/12/18

1
@FunkFortyNiner Cảm ơn nhận xét của bạn, đó chính xác là những gì tôi cần nghe. Tôi đang cố gắng lọc ra một giá trị cơ sở dữ liệu NULL bằng cách sử dụng Isset () thường trả về giá trị false cho các giá trị null thông thường, nhưng với giá trị cơ sở dữ liệu, tôi phải sử dụng $ value === NULL. Tôi không hoàn toàn hiểu điều này có thể xảy ra như thế nào, nhưng tôi đã đến trang này với sự cố này.
Jeff

Câu trả lời:


124

Null không phân biệt chữ hoa chữ thường.

Từ tài liệu :

Chỉ có một giá trị kiểu null và đó là từ khóa không phân biệt chữ hoa chữ thường NULL.


6
Trừ khi một kết quả phù hợp chính xác trong DB được truy vấn.
Funk Forty Niner.

Tôi đang gặp sự cố so sánh nullgiá trị nhận được từ truy vấn Cơ sở dữ liệu. Bạn có thể giúp?
Razin Abid

9

Không có sự khác biệt. Cùng loại chỉ là một từ khóa không phân biệt chữ hoa chữ thường . Tương tự như True/ Falseetc ...


-2

cũng có một sự khác biệt về kỹ thuật, không giống như những gì bạn đang nghĩ (nghĩ: nó xuất hiện ở đâu trong từ điển): giá trị ASCII cho chữ thường null xuất hiện sau chữ hoa. Thử:

$a = NULL;
$b = null;
if($a < $b){
   print 'first num appears earlier in the dictionary than second num';
}
else {
   print'the right num appears in the dictionary before the left num ';
}

** thực sự không có giá trị ASCII nào cho chữ thường null trong khi chữ hoa NULL bằng 0. chữ thường null sẽ được đánh giá là giá trị chuỗi sẽ lớn hơn 0. Sự khác biệt giữa tất cả các giá trị ASCII chữ hoa và chữ thường là 32, ngoại trừ ở đây trong đó toàn bộ giá trị chuỗi được xem xét.


err, điều này tương quan như thế nào với việc sử dụng làm cờ booleanesque? ASCII không bao giờ được truy vấn?
Martin

1
Cái này sai. Bạn nên nói elseif($b < $a) {... } else print 'the same';và sau đó bạn sẽ thấy rằng trên thực tế chúng giống nhau. Cũng như nUlL và NuLl.
Matt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.