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){ $a = debug_zval_dump($val); var_dump($a); /* echo str_pad(print($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 git.master, rfc.property-hooks
string(0) "" interned NULL string(1) " " interned NULL bool(false) NULL bool(true) NULL array(0) interned { } NULL NULL NULL string(1) "0" interned NULL int(0) NULL float(0) NULL object(stdClass)#2 (0) refcount(3){ } NULL object(Foo)#1 (1) refcount(4){ ["bar"]=> NULL } NULL NULL NULL string(1) "" interned NULL
Output for git.master_jit
string(0) "" interned NULL string(1) " " interned NULL bool(false) NULL bool(true) NULL array(0) interned { } NULL NULL NULL string(1) "0" interned NULL int(0) NULL float(0) NULL object(stdClass)#2 (0) refcount(3){ } NULL object(Foo)#1 (1) refcount(4){ ["bar"]=> NULL } NULL NULL NULL string(1) "" refcount(4) NULL

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
61.1 ms | 401 KiB | 8 Q