Skip to content

Instantly share code, notes, and snippets.

@arielallon
Created December 5, 2017 17:08
Show Gist options
  • Save arielallon/ad14a48fa81d84cdc8125279ae8bb000 to your computer and use it in GitHub Desktop.
Save arielallon/ad14a48fa81d84cdc8125279ae8bb000 to your computer and use it in GitHub Desktop.
Loose comparison of falsey types
<?php
$falsey = [
0,
'',
'0',
null,
false,
[],
];
$len = count($falsey);
for ($i = 0; $i < $len; $i++) {
for ($j = 0; $j < $len; $j++) {
$a = $falsey[$i];
$b = $falsey[$j];
echo is_array($a) ? '[]' : var_export($a);
echo "\t == \t";
echo is_array($b) ? '[]' : var_export($b);
echo "; \t// ";
var_export($a == $b);
echo "\n";
}
}
@arielallon
Copy link
Author

@arielallon
Copy link
Author

results:

0	 == 	0; 	// true
0	 == 	''; 	// true
0	 == 	'0'; 	// true
0	 == 	NULL; 	// true
0	 == 	false; 	// true
0	 == 	[]; 	// false
''	 == 	0; 	// true
''	 == 	''; 	// true
''	 == 	'0'; 	// false
''	 == 	NULL; 	// true
''	 == 	false; 	// true
''	 == 	[]; 	// false
'0'	 == 	0; 	// true
'0'	 == 	''; 	// false
'0'	 == 	'0'; 	// true
'0'	 == 	NULL; 	// false
'0'	 == 	false; 	// true
'0'	 == 	[]; 	// false
NULL	 == 	0; 	// true
NULL	 == 	''; 	// true
NULL	 == 	'0'; 	// false
NULL	 == 	NULL; 	// true
NULL	 == 	false; 	// true
NULL	 == 	[]; 	// true
false	 == 	0; 	// true
false	 == 	''; 	// true
false	 == 	'0'; 	// true
false	 == 	NULL; 	// true
false	 == 	false; 	// true
false	 == 	[]; 	// true
[]	 == 	0; 	// false
[]	 == 	''; 	// false
[]	 == 	'0'; 	// false
[]	 == 	NULL; 	// true
[]	 == 	false; 	// true
[]	 == 	[]; 	// true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment