Unterschied zwischen NULL und null in PHP

83

Gibt es einen Unterschied zwischen NULLund nullin PHP? Manchmal scheinen sie austauschbar zu sein und manchmal nicht.

Bearbeiten: Aus irgendeinem Grund habe ich beim Lesen der in der Antwort verlinkten Dokumentation (vor dem Posten dieser Frage) diese als "Groß- und Kleinschreibung beachten" anstelle von "Groß- und Kleinschreibung beachten" gelesen. Dies war der ganze Grund, warum ich diese Frage überhaupt gestellt habe. .

cmcculloh
quelle
2
NULL=nullund umgekehrt, es sei denn, eine genaue Übereinstimmung in der Datenbank wird abgefragt.
Funk Forty Niner
@FunkFortyNiner In dieser Frage ist keine DB involviert. Frage ist über die Programmiersprache.
Pablo Pazos
@PabloPazos warum pingst du mich nach 6 Jahren an? Wenn Sie meinen Kommentar erneut lesen, werden Sie wahrscheinlich Relevanz sehen. Schauen Sie sich das Schlüsselwort "es sei denn" an, das eine mögliche Wahrheit wäre.
Funk Forty Niner
1
@PabloPazos Es ist ein bisschen lächerlich, einen Kommentar wie Ihren zu machen. Was er sagte, ist absolut relevant und hilfreich. Wenn jemand anderes vorbeikam und sich dies ansah, während ein DB-Fehler auftrat, würde dies helfen, eine Lösung zu finden. Diejenigen, die ebenfalls nicht relevant sind, werden einfach weitermachen und eine andere Antwort suchen.
Kenziiee Flavius
1
@FunkFortyNiner Danke für deinen Kommentar, genau das musste ich hören. Ich habe versucht, einen Datenbankwert NULL mit isset () herauszufiltern, der normalerweise false für reguläre Nullen zurückgibt, aber mit dem Datenbankwert musste ich $ value === NULL verwenden. Ich verstehe nicht ganz, wie das möglich ist, aber ich bin mit diesem Problem auf diese Seite gekommen.
Jeff

Antworten:

120

Null unterscheidet nicht zwischen Groß- und Kleinschreibung.

Aus der Dokumentation :

Es gibt nur einen Wert vom Typ null, und das ist das Schlüsselwort NULL , bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird.

mbillard
quelle
6
Es sei denn, es wird eine genaue Übereinstimmung in der Datenbank abgefragt.
Funk Forty Niner
Ich habe Probleme beim Vergleichen des nullWerts aus der Datenbankabfrage. Kannst du helfen?
Razin Abid
9

Es gibt keinen Unterschied. Der gleiche Typ ist nur ein Schlüsselwort ohne Berücksichtigung der Groß- und Kleinschreibung . Gleich wie True/ Falseetc ...

SolidSnake
quelle
-1

Nun, es gibt einen technischen Unterschied, nur nicht das, was Sie denken (denken Sie: Wo erscheint es im Wörterbuch): Der ASCII-Wert für Null in Kleinbuchstaben wird nach Großbuchstaben angezeigt. Versuchen:

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

** Tatsächlich gibt es keinen ASCII-Wert für Kleinbuchstaben Null, während Großbuchstaben NULL 0 sind. Kleinbuchstaben Null werden als Zeichenfolgenwert ausgewertet, der größer als 0 ist. Die Differenz zwischen allen ASCII-Groß- und Kleinbuchstaben beträgt 32, außer hier Dabei wird ein ganzer Zeichenfolgenwert berücksichtigt.

David Hahn
quelle
ähm, wie korreliert das mit der Verwendung als boolesches Flag? ASCII wird nie abgefragt?
Martin
1
Das ist falsch. Sie sollten sagen elseif($b < $a) {... } else print 'the same';und dann würden Sie sehen, dass sie tatsächlich gleich sind. Wie nUlL und NuLl.
Matt