PHP comparison results

Boolean results of PHP operations commonly used when comparing with PHP's if.

Always try to use strict comparison (three equal signs ===) to avoid ambiguity. See also: the if command and PHP type comparison tables on php.net.


Ambiguous (avoid)

$value =>undefinednullfalsetrue"0"0"1"1empty string """string"array()array("foo")
$value == nulltruetruetruefalsefalsetruefalsefalsetruefalsetruefalse
$value == falsetruetruetruefalsetruetruefalsefalsetruefalsetruefalse
!$valuetruetruetruefalsetruetruefalsefalsetruefalsetruefalse
empty($value)truetruetruefalsetruetruefalsefalsetruefalsetruefalse
$value == 0truetruetruefalsetruetruefalsefalsetruetruefalsefalse
$value == "0"falsefalsetruefalsetruetruefalsefalsefalsefalsefalsefalse
$value == truefalsefalsefalsetruefalsefalsetruetruefalsetruefalsetrue
$value == 1falsefalsefalsetruefalsefalsetruetruefalsefalsefalsefalse
$value == "1"falsefalsefalsetruefalsefalsetruetruefalsefalsefalsefalse

Strict (use)

$value =>undefinednullfalsetrue"0"0"1"1empty string """string"array()array("foo")
isset($value)falsefalsetruetruetruetruetruetruetruetruetruetrue
is_null($value)truetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse
$value === nulltruetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse
$value === falsefalsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalse
$value === truefalsefalsefalsetruefalsefalsefalsefalsefalsefalsefalsefalse
$value === "0"falsefalsefalsefalsetruefalsefalsefalsefalsefalsefalsefalse
$value === 0falsefalsefalsefalsefalsetruefalsefalsefalsefalsefalsefalse
$value === "1"falsefalsefalsefalsefalsefalsetruefalsefalsefalsefalsefalse
$value === 1falsefalsefalsefalsefalsefalsefalsetruefalsefalsefalsefalse

What's up with …

empty() vs == FALSE

$value =>undefinednullfalsetrue"0"0"1"1empty string """string"array()array("foo")
empty($value)truetruetruefalsetruetruefalsefalsetruefalsetruefalse
$value == falsetruetruetruefalsetruetruefalsefalsetruefalsetruefalse

If a $value is undefined $value == FALSE will throw you a warning:

Notice: Undefined variable: value in /yourscript.php on line 1 

empty($value) will not.


Generated on PHP 5.4.10

PS: Just a litte cheat sheet I made for myself, which I like to access online.