Is null and 0 the same php?

[PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8]

is_null Finds whether a variable is null

Description

is_null[mixed $value]: bool

Parameters

value

The variable being evaluated.

Return Values

Returns true if value is null, false otherwise.

Examples

Example #1 is_null[] example

Notice: Undefined variable: inexistent in ...
bool[true]
bool[true]

See Also

  • The null type
  • isset[] - Determine if a variable is declared and is different than null
  • is_bool[] - Finds out whether a variable is a boolean
  • is_numeric[] - Finds whether a variable is a number or a numeric string
  • is_float[] - Finds whether the type of a variable is float
  • is_int[] - Find whether the type of a variable is integer
  • is_string[] - Find whether the type of a variable is string
  • is_object[] - Finds whether a variable is an object
  • is_array[] - Finds whether a variable is an array

Malfist

14 years ago

Micro optimization isn't worth it.

You had to do it ten million times to notice a difference, a little more than 2 seconds

$a===NULL; Took: 1.2424390316s
is_null[$a]; Took: 3.70693397522s

difference = 2.46449494362
difference/10,000,000 = 0.000000246449494362

The execution time difference between ===NULL and is_null is less than 250 nanoseconds. Go optimize something that matters.

george at fauxpanels dot com

13 years ago

See how php parses different values. $var is the variable.

$var        =    NULL    ""    0    "0"    1

strlen[$var]    =    0    0    1    1    1
is_null[$var]    =    TRUE    FALSE    FALSE    FALSE    FALSE
$var == ""    =    TRUE    TRUE    TRUE    FALSE    FALSE
!$var        =    TRUE    TRUE    TRUE    TRUE    FALSE
!is_null[$var]    =    FALSE    TRUE    TRUE    TRUE    TRUE
$var != ""    =    FALSE    FALSE    FALSE    TRUE    TRUE
$var        =    FALSE    FALSE    FALSE    FALSE    TRUE

Peace!

contact dot 01834e2c at renegade334 dot me dot uk

7 years ago

In PHP 7 [phpng], is_null is actually marginally faster than ===, although the performance difference between the two is far smaller.

PHP 5.5.9
is_null - float[2.2381200790405]
===     - float[1.0024659633636]
=== faster by ~100ns per call

PHP 7.0.0-dev [built: May 19 2015 10:16:06]
is_null - float[1.4121870994568]
===     - float[1.4577329158783]
is_null faster by ~5ns per call

ahamilton9

4 months ago

A quick test in 2022 on PHP 8.1 confirms there is still no need to micro-optimize NULL checks:

Chủ Đề