107 votes

Différence entre NULL et null en PHP

Y a-t-il une différence entre NULL y null en PHP ? Parfois, ils semblent être interchangeables, parfois non.

edit : pour une raison quelconque, lorsque j'ai lu la documentation liée à la réponse (avant de poster cette question), j'ai lu "sensible à la casse" au lieu de "insensible à la casse", ce qui était la raison pour laquelle j'ai posté cette question en premier lieu...

2 votes

NULL=null et vice-versa, sauf si une correspondance exacte dans la base de données est demandée.

0 votes

@FunkFortyNiner il n'y a pas de DB impliqué sur cette question. La question porte sur le langage de programmation.

1 votes

@PabloPazos pourquoi m'envoies-tu des messages après que 6 ans se soient écoulés ? De plus, si vous relisez mon commentaire, vous verrez la pertinence probable. Regardez le mot clé "à moins que" qui serait une vérité possible.

141voto

mbillard Points 15829

Null n'est pas sensible à la casse.

De la documentation :

Il n'existe qu'une seule valeur de type null, et c'est l'élément insensible à la casse mot-clé NULL.

8 votes

Sauf si une correspondance exacte dans la base de données est demandée.

0 votes

J'ai un problème pour comparer null valeur obtenue à partir de la requête de la base de données. Pouvez-vous nous aider ?

1 votes

@FunkFortyNiner SQL et PHP sont des langages différents. Leur NULL ont des comportements différents.

12voto

Robin Van Persi Points 5197

Il n'y a pas de différence. Même type, juste son insensible à la casse mot-clé. Même que True / False etc...

6voto

L'un ou l'autre fonctionnera. Mais le guide de style officiel de PHP, PSR-12, recommande les minuscules.

https://www.php-fig.org/psr/psr-12/ , section 2.5

0voto

abatishchev Points 42425

En général, en programmation, "null" est une variable vide de n'importe quel type, alors qu'aucune mémoire n'est allouée pour elle. En php aussi, je suppose.

Foo f; // is null
f = new Foo(); // 'new' is a operator, function for memory allocating

SQL NULL' est la solution lorsque la valeur d'une colonne n'est pas encore attribuée. L'attribut NOT NULL n'est pas défini et aucune valeur par défaut n'est fournie.

INSERT INTO t(ID,value) VALUES ('{123}', NULL);

En général, ces concepts sont les mêmes. Valeur non encore attribuée". Mais dans l'implémentation, 'null' est une valeur vide, mais DbNull est une classe spéciale qui représente SQL NULL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X