Diferença entre NULL e null em PHP


85

Existe uma diferença entre NULLe nullem PHP? Às vezes, eles parecem ser intercambiáveis ​​e às vezes não.

editar: por algum motivo, quando li a documentação vinculada na resposta (antes de postar esta pergunta), li-a como "diferencia maiúsculas de minúsculas" em vez de "não diferencia maiúsculas de minúsculas", razão pela qual publiquei esta pergunta em primeiro lugar. .


2
NULL=nulle vice-versa, a menos que uma correspondência exata no banco de dados seja consultada.
Funk Forty Niner

@FunkFortyNiner não há nenhum banco de dados envolvido nesta questão. A pergunta é sobre a linguagem de programação.
Pablo Pazos

@PabloPazos por que você está me ligando depois de 6 anos? Além disso, se você ler meu comentário novamente, verá que é provável que seja relevante. Observe a palavra-chave "a menos que", que seria uma verdade possível.
Funk Forty Niner

1
@PabloPazos é um pouco ridículo até fazer um comentário como o seu, o que ele disse é completamente relevante e útil. Se alguém viesse e olhasse isso enquanto tinha um erro de banco de dados, isso ajudaria a encontrar uma solução rápida, aqueles que também não são relevantes simplesmente seguirão em frente e verão outra resposta.
Kenziiee Flavius

1
@FunkFortyNiner Obrigado pelo seu comentário, era exatamente o que eu precisava ouvir. Eu estava tentando filtrar um valor de banco de dados NULL usando isset () que geralmente retorna falso para nulos regulares, mas com o valor de banco de dados eu tive que usar $ value === NULL. Não entendo muito bem como isso é possível, mas cheguei a esta página com esse problema.
Jeff

Respostas:


124

Nulo não diferencia maiúsculas de minúsculas.

Da documentação :

Há apenas um valor do tipo nulo, que é a palavra - chave que não faz distinção entre maiúsculas e minúsculas NULL.


6
A menos que uma correspondência exata no banco de dados seja consultada.
Funk Forty Niner

Estou tendo problemas para comparar o nullvalor obtido da consulta do banco de dados. Você pode ajudar?
Razin Abid

9

Não há diferença. Mesmo tipo, apenas é uma palavra-chave que não diferencia maiúsculas de minúsculas . Igual a True/ Falseetc ...


-2

bem, há uma diferença técnica, mas não o que você está pensando (pense: onde ela aparece no dicionário): o valor ASCII para nulo em minúsculas aparece após a maiúscula. Experimentar:

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

** na verdade, não há nenhum valor ASCII para nulo em minúsculas, enquanto NULL em maiúsculas é 0. nulo em minúsculas seria avaliado como um valor de string que seria maior que 0. A diferença entre todos os valores ASCII em maiúsculas e minúsculas é 32, exceto aqui onde um valor de string inteiro é considerado.


errar, como isso se correlaciona com o uso como uma bandeira booleana? ASCII nunca é consultado?
Martin

1
Isto está errado. Você deveria dizer elseif($b < $a) {... } else print 'the same';e então veria que na verdade eles são iguais. Assim como nUlL e NuLl.
Matt de
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.