Differenza tra NULL e null in PHP


85

C'è una differenza tra NULLe nullin PHP? A volte sembrano essere intercambiabili e talvolta no.

modifica: per qualche motivo quando ho letto la documentazione collegata alla risposta (prima di postare questa domanda) l'ho letta come "case sensitive" invece di "case insensitive" che è stata l'intera ragione per cui ho postato questa domanda in primo luogo .. .


2
NULL=nulle viceversa a meno che non venga richiesta una corrispondenza esatta in DB.
Funk Forty Niner

@FunkFortyNiner non è coinvolto alcun DB su questa domanda. La domanda riguarda il linguaggio di programmazione.
Pablo Pazos

@PabloPazos perché mi stai pingando dopo che sono passati 6 anni? Inoltre, se leggi di nuovo il mio commento, vedrai una probabile rilevanza. Guarda la parola chiave "a meno che" sarebbe una possibile verità.
Funk Forty Niner

1
@PabloPazos è un po 'ridicolo anche solo fare un commento come il tuo, quello che ha detto è completamente pertinente e utile. Se qualcun altro si avvicinasse e guardasse questo problema pur avendo un errore DB, aiuterebbe a tracciare rapidamente una soluzione, quelli che non sono rilevanti anche loro andranno semplicemente avanti e guarderanno un'altra risposta.
Kenziiee Flavius

1
@FunkFortyNiner Grazie per il tuo commento, era esattamente quello che avevo bisogno di sentire. Stavo cercando di filtrare un valore di database NULL utilizzando isset () che di solito restituisce false per i normali null, ma con il valore del database ho dovuto usare $ value === NULL. Non capisco bene come sia possibile, ma sono arrivato a questa pagina con questo problema.
Jeff

Risposte:


124

Null non fa distinzione tra maiuscole e minuscole.

Dalla documentazione :

Esiste un solo valore di tipo null e questa è la parola chiave senza distinzione tra maiuscole e minuscole NULL.


6
A meno che non venga richiesta una corrispondenza esatta nel database.
Funk Forty Niner

Ho problemi a confrontare il nullvalore ottenuto dalla query del database. Puoi aiutare?
Razin Abid

9

Non c'è differenza. Lo stesso tipo è solo una parola chiave senza distinzione tra maiuscole e minuscole . Come True/ Falseecc ...


-2

beh, c'è una differenza tecnica, ma non quello che stai pensando (pensa: dove appare nel dizionario): il valore ASCII per null minuscolo appare dopo il maiuscolo. Provare:

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

** in realtà non c'è alcun valore ASCII per null minuscole mentre NULL maiuscolo è 0. null minuscolo sarebbe valutato come un valore stringa che sarebbe maggiore di 0. La differenza tra tutti i valori ASCII maiuscoli e minuscoli è 32, tranne qui dove viene considerato un intero valore di stringa.


ehm, come è correlato all'uso come flag booleanesco? ASCII non viene mai interrogato?
Martin

1
Questo è sbagliato. Dovresti dire elseif($b < $a) {... } else print 'the same';e poi vedresti che in effetti sono la stessa cosa. Così come nUlL e NuLl.
Matt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.