PHP'de NULL ve null arasındaki fark


85

PHP arasında NULLve nullarasında bir fark var mı ? Bazen birbirinin yerine geçebilir gibi görünürler ve bazen değiller.

düzenleme: bazı nedenlerden dolayı yanıtta bağlantılı dokümantasyonu okuduğumda (bu soruyu göndermeden önce) onu "büyük / küçük harfe duyarlı" yerine "büyük / küçük harfe duyarlı" olarak okudum, bu da bu soruyu ilk başta göndermemin tüm nedeniydi. .


2
NULL=nullve DB'de tam bir eşleşme sorgulanmadıkça bunun tersi de geçerlidir.
Funk Forty Niner

@FunkFortyNiner bu soruya dahil olan DB yok. Soru, programlama dili ile ilgili.
Pablo Pazos

@PabloPazos 6 yıl geçtikten sonra neden bana ping atıyorsun? Ayrıca, yorumumu tekrar okursanız, olası bir alaka düzeyi göreceksiniz. Olası bir gerçek olan "sürece" anahtar kelimesine bakın.
Funk Forty Niner

1
@PabloPazos, sizinki gibi bir yorum yapmak bile biraz saçma, söyledikleri tamamen alakalı ve yararlı. Başka biri gelip buna bir DB hatası verirken bakarsa, bir çözümü hızlı bir şekilde takip etmeye yardımcı olur, ilgili olmayanlar da basitçe devam edecek ve başka bir yanıta bakacaktır.
Kenziiee Flavius

1
@FunkFortyNiner Yorumunuz için teşekkürler, tam olarak duymam gereken buydu. İsset () kullanarak bir veritabanı değerini NULL filtrelemeye çalışıyordum, bu genellikle normal boş değerler için yanlış döndürüyordu, ancak veritabanı değeriyle $ değer === NULL kullanmak zorundaydım. Bunun nasıl mümkün olduğunu tam olarak anlamıyorum ama bu sayfaya bu problemle geldim.
Jeff

Yanıtlar:


124

Null, büyük / küçük harfe duyarlı değildir.

Gönderen belgeler :

Null türünde yalnızca bir değer vardır ve bu, büyük / küçük harf duyarlı olmayan NULL anahtar sözcüğüdür.


6
DB'de tam bir eşleşme sorgulanmadıkça.
Funk Forty Niner

nullVeritabanı sorgusundan alınan değeri karşılaştırırken sorun yaşıyorum . Yardım edebilir misin?
Razin Abid

9

Fark yok. Aynı tür, büyük / küçük harfe duyarlı olmayan bir anahtar kelimedir. True/ FalseEtc ile aynı ...


-2

Pekala, teknik bir fark var, düşündüğünüz şey değil (düşünün: sözlükte nerede görünüyor): küçük harf boş için ASCII değeri büyük harften sonra görünüyor. Deneyin:

$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 ';
}

** aslında küçük harf null için ASCII değeri yoktur, büyük harf NULL 0'dır. küçük harf null, 0'dan büyük bir dize değeri olarak değerlendirilir. Tüm büyük ve küçük ASCII değerleri arasındaki fark, burası dışında 32'dir. tam bir dize değerinin dikkate alındığı yer.


hata, bu bir booleansque bayrak olarak kullanımla nasıl ilişkilidir? ASCII asla sorgulanmaz mı?
Martin

1
Bu yanlış. Söylemelisin elseif($b < $a) {... } else print 'the same';ve sonra aslında aynı olduklarını göreceksin. NUlL ve NuLl gibi.
Matt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.