3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Foo { public $bar; } $foo = new Foo; $blanks = array( "string(empty) \"\"" => "", "string(space) \" \"" => " ", "bool(false)" => FALSE, "bool(true)" => TRUE, "array(empty) {}" => array(), "NULL" => NULL, "string(\"zero\") \"0\"" => "0", "int(0)" => 0, "float(0.0)" => 0.0, "object(stdClass)# (empty) {}" => new stdClass, "public \$bar" => $foo->bar, "string(null byte) \"\\0\"" => "\0" ); $headings = array('type', 'if', 'isset', 'empty', 'is_null'); foreach(array($headings, array_keys($blanks)) as $ord => $arr){ foreach($arr as $val){ static $max = 0; if(strlen($val) > $max){ $max = strlen($val); } } ${"pad_$ord"} = $max; } foreach($headings as $i => $heading){ echo str_pad($heading, $i == 0 ? $pad_1 : $pad_0), " | "; } echo "\n"; $true = str_pad("TRUE", $pad_1) . " | "; $false = str_pad("", $pad_1) . " | "; foreach($blanks as $readable => $blank){ echo str_pad($readable, $pad_1), " | "; echo $blank ? $true : $false; echo isset($blank) ? $true : $false; echo empty($blank) ? $true : $false; echo is_null($blank) ? $true : $false; echo "\n"; }
based on G6g5L
Output for 5.3.19 - 7.2.0
type | if | isset | empty | is_null | string(empty) "" | | TRUE | TRUE | | string(space) " " | TRUE | TRUE | | | bool(false) | | TRUE | TRUE | | bool(true) | TRUE | TRUE | | | array(empty) {} | | TRUE | TRUE | | NULL | | | TRUE | TRUE | string("zero") "0" | | TRUE | TRUE | | int(0) | | TRUE | TRUE | | float(0.0) | | TRUE | TRUE | | object(stdClass)# (empty) {} | TRUE | TRUE | | | public $bar | | | TRUE | TRUE | string(null byte) "\0" | TRUE | TRUE | | |