Специальное значение NULL представляет собой переменную без значения. NULL - это единственно возможное значение типа null.

Переменная считается null, если:

  • ей была присвоена константа NULL.

  • ей еще не было присвоено никакого значения.

  • она была удалена с помощью unset().


Существует только одно значение типа null - регистро-независимая константа NULL.


Смотрите также функции is_null() и unset().

Приведение к NULL

Приведение переменной к null с использованием (unset) $var не удаляет переменную и ее значение. Данное выражение только возвращает NULL


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
2011-04-22 18:36:37
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.
2017-12-07 13:07:56
Note: Non Strict Comparison '==' returns bool(true) for 

null == 0 <-- returns true

Use Strict Comparison Instead

null === 0 <-- returns false
2018-01-11 09:38:06
Pay attention then using operator -- on NULL values:

$x = null;
--$x;      // $x is NULL
$x--;      // still NULL
$x -= 1;   // $x is -1

On other side for ++ everything works fine:

$x = null;
++$x;      // $ix is 1
2021-02-10 12:18:28
I would like to add for clarification that:

// $x is still NULL. 
// Decrementing NULL, using Decrement Operator, gives NULL. 

// $x is now int(-1). 
// This actually decrements value by 1. 

On the other hand, Incrementation works simply as expected. 
Hope this helps :)
2021-04-10 06:39:49
Note that NULL works like a magic object with any attribute you can name, but they are all NULL:

foreach ( [ null, null ] as $person ) {
  $friends[] = [ 'Name'=>$person['name'], 'Phone'=>$person['cell'] ];


    [0] => Array
            [Name] =>
            [Phone] =>

    [1] => Array
            [Name] =>
            [Phone] =>


This means that:
* NULL == NULL['foo']['bar']['whatever']

This can be slightly confusing if you accidentally slip a NULL into an array of other items.
2021-07-22 22:57:37

    Поддержать сайт на родительском проекте КГБ