Diferencia entre NULL y null en PHP

85

¿Hay alguna diferencia entre NULLy nullen PHP? A veces parecen intercambiables y otras no.

editar: por alguna razón, cuando leí la documentación vinculada en la respuesta (antes de publicar esta pregunta) la leí como "sensible a mayúsculas y minúsculas" en lugar de "insensible a mayúsculas y minúsculas", que fue la razón por la que publiqué esta pregunta en primer lugar. .

cmcculloh
fuente
2
NULL=nully viceversa, a menos que se consulte una coincidencia exacta en DB.
Funk Forty Niner
@FunkFortyNiner no hay DB involucrado en esta pregunta. La pregunta es sobre el lenguaje de programación.
Pablo Pazos
@PabloPazos ¿por qué me estás haciendo ping después de que hayan pasado 6 años? Además, si vuelve a leer mi comentario, verá una relevancia probable. Mire la palabra clave "a menos que" que sería una posible verdad.
Funk Forty Niner
1
@PabloPazos es un poco ridículo incluso hacer un comentario como el tuyo, lo que dijo es completamente relevante y útil. Si alguien más llega y mira esto mientras tiene un error de base de datos, ayudaría a acelerar una solución, aquellos que no son relevantes también simplemente seguirán adelante y buscarán otra respuesta.
Kenziiee Flavius
1
@FunkFortyNiner Gracias por tu comentario, eso era exactamente lo que necesitaba escuchar. Estaba tratando de filtrar un valor de base de datos NULL usando isset () que generalmente devuelve falso para nulos regulares, pero con el valor de la base de datos tuve que usar $ value === NULL. No entiendo muy bien cómo es posible, pero llegué a esta página con este problema.
Jeff

Respuestas:

124

Null no distingue entre mayúsculas y minúsculas.

De la documentación :

Solo hay un valor de tipo nulo, y esa es la palabra clave que no distingue entre mayúsculas y minúsculas NULL.

mbillard
fuente
6
A menos que se consulte una coincidencia exacta en DB.
Funk Forty Niner
Tengo problemas para comparar el nullvalor obtenido de la consulta de la base de datos. ¿Puede usted ayudar?
Razin Abid
9

No hay diferencia. El mismo tipo es una palabra clave que no distingue entre mayúsculas y minúsculas . Igual que True/ Falseetc ...

SolidSnake
fuente
-2

Bueno, hay una diferencia técnica, pero no lo que estás pensando (piensa: ¿dónde aparece en el diccionario): el valor ASCII para nulo en minúsculas aparece después de las mayúsculas. Tratar:

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

** en realidad no hay un valor ASCII para nulo en minúsculas mientras que NULL en mayúsculas es 0. El nulo en minúsculas se evaluaría como un valor de cadena que sería mayor que 0. La diferencia entre todos los valores ASCII en mayúsculas y minúsculas es 32, excepto aquí donde se considera un valor de cadena completo.

David Hahn
fuente
err, ¿cómo se correlaciona esto con el uso como una bandera booleana? ¿ASCII nunca se consulta?
Martin
1
Esto está mal. Deberías decir elseif($b < $a) {... } else print 'the same';y luego verías que de hecho son lo mismo. Como son nUlL y NuLl.
Matt