3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { public $bar; } $foo = new Foo; $arr = 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" ); 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 $key => $val){ echo str_pad($key, 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.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 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.4, 8.3.6
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 | | |
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 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 | | |

preferences:
224.41 ms | 405 KiB | 376 Q