PHP represents "no value" with the null
keyword. It's somewhat similar to the null pointer in C-language and to the NULL value in SQL.
Setting the variable to null:
$nullvar = null; // directly
function doSomething() {} // this function does not return anything
$nullvar = doSomething(); // so the null is assigned to $nullvar
Checking if the variable was set to null:
if (is_null($nullvar)) { /* variable is null */ }
if ($nullvar === null) { /* variable is null */ }
If the variable was not defined or was unset then any tests against the null will be successful but they will also generate a Notice: Undefined variable: nullvar
:
$nullvar = null;
unset($nullvar);
if ($nullvar === null) { /* true but also a Notice is printed */ }
if (is_null($nullvar)) { /* true but also a Notice is printed */ }
Therefore undefined values must be checked with isset
:
if (!isset($nullvar)) { /* variable is null or is not even defined */ }