PHP is_null

Summary: in this tutorial, you’ll learn how to use the PHP is_null() construct to check if a variable is null.

Introduction to the PHP is_null() construct

PHP is_null() accepts a variable and returns true if that variable is null. Otherwise, it returns false.

is_null(mixed $v): bool
Code language: PHP (php)

In this syntax, the $v is the variable to check. If $v doesn’t exist, the is_null() also returns true and issues a notice.

Since the is_null() is a language construct, not a function, you cannot call it via variable functions. For example, the following statement will result in an error:

<?php $f = is_null;
Code language: PHP (php)

However, you can define a function that wraps the is_null() construct like this:

<?php function isnull($v): bool { return is_null($v); }
Code language: PHP (php)

Alternatively, you can define an arrow function, assign it to a variable, and use that variable function.

<?php $isnull = fn($v) => is_null($v); $color = null; echo $isnull($color); // true
Code language: PHP (php)

PHP is_null() examples

The following example uses the is_null() construct and returns true because the $count variable doesn’t exist:

<?php var_dump(is_null($count));
Code language: PHP (php)

This code also issues a notice:

Notice: Undefined variable: $count
Code language: PHP (php)

The following example uses the is_null() and returns true because the $count variable is null:

<?php $count = null; var_dump(is_null($count)); // true
Code language: PHP (php)

The following example uses the is_null() and returns false because the $count variable is not null:

<?php $count = 1; var_dump(is_null($count)); // false
Code language: PHP (php)

PHP is_null() with array

The following example uses the is_null() to check if the element with the key link is null or not. It returns true because the element doesn’t exist:

<?php $colors = [ 'text' => 'black', 'background' => 'white' ]; var_dump(is_null($colors['link']));
Code language: PHP (php)

It also returns a notice:

Notice: Undefined index: link
Code language: PHP (php)

PHP is_null() with string index

The following example uses the is_null() to check if the element at index 5 in the string $message is null or not:

<?php $message = 'Hello'; var_dump(is_null($message[5]));
Code language: PHP (php)

It returns false and issues a notice:

PHP Notice: Uninitialized string offset: 5
Code language: PHP (php)

PHP is_null(), equal opeartor (==), and identity operator (===)

The echo displays an empty string for the false value, which is not intuitive. The following defines a function that displays false as the string false instead of an empty string:

<?php function echo_bool(string $title, bool $v): void { echo $title, "\t", $v === true ? 'true' : 'false', PHP_EOL; }
Code language: PHP (php)

Comparing falsy values with null using equal operator (==)

Comparing a falsy value with null using the equal operator (==) will return true. For example:

The following example compares null with falsy values using the equal operator (==):

<?php function echo_bool(string $title, bool $v): void { echo $title, "\t", $v === true ? 'true' : 'false', PHP_EOL; } echo_bool('null == false:', null == false); echo_bool('null == 0:', null == 0); echo_bool('null == 0.0:', null == 0.0); echo_bool('null =="0":', null == false); echo_bool('null == "":', null == ''); echo_bool('null == []:', null == []); echo_bool('null == null:', null == null);
Code language: PHP (php)

Output:

null == false: true null == 0: true null == 0.0: true null =="0": true null == "": true null == []: true null == null: true
Code language: plaintext (plaintext)

Comparing falsy value with null using identity operator (===)

The following example uses the identity operator (===) to compare null with falsy values, only null === null returns true.

<?php function echo_bool(string $title, bool $v): void { echo $title, "\t", $v === true ? 'true' : 'false', PHP_EOL; } echo_bool('null === false:', null === false); echo_bool('null === 0:', null === 0); echo_bool('null === 0.0:', null === 0.0); echo_bool('null ==="0":', null === false); echo_bool('null === "":', null === ''); echo_bool('null === []:', null === []); echo_bool('null === null:', null === null);
Code language: plaintext (plaintext)

Output:

null === false: false null === 0: false null === 0.0: false null ==="0": false null === "": false null === []: false null === null: true
Code language: PHP (php)

Comparing falsy values with null using the PHP is_null()

The following example uses the is_null() to check if falsy values are null:

<?php function echo_bool(string $title, bool $v): void { echo $title, "\t", $v === true ? 'true' : 'false', PHP_EOL; } echo_bool('is_null(false):', is_null(false)); echo_bool('is_null(0):', is_null(0)); echo_bool('is_null(0.0)', is_null(0.0)); echo_bool('is_null("0"):', is_null("0")); echo_bool('is_null(""):', is_null("")); echo_bool('is_null([]):', is_null([])); echo_bool('is_null(null):', is_null(null));
Code language: PHP (php)

Output:

is_null(false): false is_null(0): false is_null(0.0) false is_null("0"): false is_null(""): false is_null([]): false is_null(null): true
Code language: PHP (php)

The is_null() and identity operator (===) return the same result.

Summary

  • The is_null() checks a value and returns true if that value is null. Otherwise, it returns false.
  • The is_null() behaves the same as the identity operator (===).
Did you find this tutorial useful?