NULL

Il valore speciale NULL rappresenta una variable senza valore. NULL è il solo valore possibile del tipo null.

Una variabile è null se:

  • le è stato assegnata la costante NULL.

  • non le è stato ancora assegnato un valore.

  • è stata cancellata con la funzione unset().

Syntax

Esiste solo un valore di tipo null, la costante NULL, che è invariante, sia essa in maiuscolo o in minuscolo.

<?php
$var 
NULL;       
?>

Vedere anche le funzioni is_null() e unset().

Casting a NULL

Effettuare il casting di una variabile a null usando (unset) $var non rimuove la variabile, né cancella il valore. Non fa altro che restituire un valore NULL.

add a note add a note

User Contributed Notes 5 notes

up
70
quickpick
8 years ago
Note: empty array is converted to null by non-strict equal '==' comparison. Use is_null() or '===' if there is possible of getting empty array.

$a = array();

$a == null  <== return true
$a === null < == return false
is_null($a) <== return false
up
15
Anonymous
1 year ago
Note: Non Strict Comparison '==' returns bool(true) for

null == 0 <-- returns true

Use Strict Comparison Instead

null === 0 <-- returns false
up
3
Hayley Watson
2 years ago
NULL is supposed to indicate the absence of a value, rather than being thought of as a value itself. It's the empty slot, it's the missing information, it's the unanswered question. It's not a jumped-up zero or empty set.

This is why a variable containing a NULL is considered to be unset: it doesn't have a value. Setting a variable to NULL is telling it to forget its value without providing a replacement value to remember instead. The variable remains so that you can give it a proper value to remember later; this is especially important when the variable is an array element or object property.

It's a bit of semantic awkwardness to speak of a "null value", but if a variable can exist without having a value, the language and implementation have to have something to represent that situation. Because someone will ask. If only to see if the slot has been filled.
up
-10
kuzawinski dot marcin at NOSPAM dot gmail dot com
5 years ago
Funny. It looks like, that there is one, and only one possible value for variable $a that will pass this test:

($a != NULL) && ((bool)$a == NULL)

It's "0" and it works because casting string "0" to boolean gives FALSE (and it's the only non empty string, that works this way). So remember that casting is not "transitive".
up
-16
nl-x at bita dot nl
12 years ago
Watch out. You can define a new constant with the name NULL with define("NULL","FOO");. But you must use the function constant("NULL"); to get it's value. NULL without the function call to the constant() function will still retrieve the special type NULL value.
Within a class there is no problem, as const NULL="Foo"; will be accessible as myClass::NULL.
To Top