3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public $bar; } $foo = new Foo; $arr = array("", " ", FALSE, TRUE, array(), NULL, "0", 0, 0.0, new stdClass, $foo, $foo->bar, "\0"); define('PAD', 20); $headings = array('type', 'if', 'isset', 'empty', 'is_null'); foreach($headings as $heading){ echo str_pad($heading, PAD), " | "; } echo "\n"; $x = str_pad("TRUE", PAD) . " | "; $y = str_pad("", PAD) . " | "; foreach($arr as $val){ echo str_pad(print_r($val), PAD), " | "; echo $val ? $x : $y; echo isset($val) ? $x : $y; echo empty($val) ? $x : $y; echo is_null($val) ? $x : $y; echo "\n"; }
Output for 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
type | if | isset | empty | is_null | 1 | | TRUE | TRUE | | 1 | TRUE | TRUE | | | 1 | | TRUE | TRUE | | 11 | TRUE | TRUE | | | Array ( ) 1 | | TRUE | TRUE | | 1 | | | TRUE | TRUE | 01 | | TRUE | TRUE | | 01 | | TRUE | TRUE | | 01 | | TRUE | TRUE | | stdClass Object ( ) 1 | TRUE | TRUE | | | Foo Object ( [bar] => ) 1 | TRUE | TRUE | | | 1 | | | TRUE | TRUE | 1 | TRUE | TRUE | | |

preferences:
211.95 ms | 408 KiB | 227 Q