3v4l.org

run code in 300+ PHP versions simultaneously
<?php $ops = [ 'x == true', 'x === true', 'x == false', 'x === false', 'x == 0', 'x == 1', 'x > 0', 'x < 0', '++x', '--x', 'empty(x)', 'strlen(x)', '(int) x', 'is_int(x)', 'intval(x)', '(bool) x', 'is_bool(x)', 'boolval(x)' ]; $data = [ 'array' => [ [], [''], ['e'], ], 'string' => [ 'test', '', ' ', '1', '0', '00', '-0', '0.0', '0.1', '-0.0', '-0.1', 'true', 'false', 'null' ], 'int' => [ 0, 1, -0, -1 ], 'double' => [ 0.0, 0.1, -0.0, -0.1 ], 'bool' => [ true, false ], 'null' => [ null ], 'class' => [ new stdClass ], 'bits' => [ -0x00, 0x00, 0x01, 0xaf ] ]; function do_op($op, $var) { $out = 'err'; switch ($op) { case 'x == true': $out = ($var == true); break; case 'x === true': $out = ($var === true); break; case 'x == false': $out = ($var == false); break; case 'x === false': $out = ($var === false); break; case 'x == 1': $out = ($var == 1); break; case 'x == 0': $out = ($var == 0); break; case 'x > 0': $out = ($var > 0); break; case 'x < 0': $out = ($var < 0); break; case '++x': $out = (++$var); break; case '--x': $out = (--$var); break; case 'empty(x)': $out = empty($var); break; case 'strlen(x)': $out = strlen($var); break; case '(int) x': $out = (int) $var; break; case '(bool) x': $out = (bool) $var; break; case 'is_int(x)': $out = is_int($var); break; case 'is_bool(x)': $out = is_bool($var); break; case 'intval(x)': $out = intval($var); break; case 'boolval(x)': $out = boolval($var); break; } return serialize($var) . " = " . var_export($out, true); } foreach ($ops as $op) { echo "\n\n$op \n\n"; foreach ($data as $name => $type) { echo " $name\n"; foreach ($type as $val) { echo " " . do_op($op, $val) . "\n"; } } }

Abusive script

This script was stopped while abusing our resources

Output for git.master, git.master_jit, rfc.property-hooks
x == true array a:0:{} = false a:1:{i:0;s:0:"";} = true a:1:{i:0;s:1:"e";} = true string s:4:"test"; = true s:0:""; = false s:1:" "; = true s:1:"1"; = true s:1:"0"; = false s:2:"00"; = true s:2:"-0"; = true s:3:"0.0"; = true s:3:"0.1"; = true s:4:"-0.0"; = true s:4:"-0.1"; = true s:4:"true"; = true s:5:"false"; = true s:4:"null"; = true int i:0; = false i:1; = true i:0; = false i:-1; = true double d:0; = false d:0.1; = true d:-0; = false d:-0.1; = true bool b:1; = true b:0; = false null N; = false class O:8:"stdClass":0:{} = true bits i:0; = false i:0; = false i:1; = true i:175; = true x === true array a:0:{} = false a:1:{i:0;s:0:"";} = false a:1:{i:0;s:1:"e";} = false string s:4:"test"; = false s:0:""; = false s:1:" "; = false s:1:"1"; = false s:1:"0"; = false s:2:"00"; = false s:2:"-0"; = false s:3:"0.0"; = false s:3:"0.1"; = false s:4:"-0.0"; = false s:4:"-0.1"; = false s:4:"true"; = false s:5:"false"; = false s:4:"null"; = false int i:0; = false i:1; = false i:0; = false i:-1; = false double d:0; = false d:0.1; = false d:-0; = false d:-0.1; = false bool b:1; = true b:0; = false null N; = false class O:8:"stdClass":0:{} = false bits i:0; = false i:0; = false i:1; = false i:175; = false x == false array a:0:{} = true a:1:{i:0;s:0:"";} = false a:1:{i:0;s:1:"e";} = false string s:4:"test"; = false s:0:""; = true s:1:" "; = false s:1:"1"; = false s:1:"0"; = true s:2:"00"; = false s:2:"-0"; = false s:3:"0.0"; = false s:3:"0.1"; = false s:4:"-0.0"; = false s:4:"-0.1"; = false s:4:"true"; = false s:5:"false"; = false s:4:"null"; = false int i:0; = true i:1; = false i:0; = true i:-1; = false double d:0; = true d:0.1; = false d:-0; = true d:-0.1; = false bool b:1; = false b:0; = true null N; = true class O:8:"stdClass":0:{} = false bits i:0; = true i:0; = true i:1; = false i:175; = false x === false array a:0:{} = false a:1:{i:0;s:0:"";} = false a:1:{i:0;s:1:"e";} = false string s:4:"test"; = false s:0:""; = false s:1:" "; = false s:1:"1"; = false s:1:"0"; = false s:2:"00"; = false s:2:"-0"; = false s:3:"0.0"; = false s:3:"0.1"; = false s:4:"-0.0"; = false s:4:"-0.1"; = false s:4:"true"; = false s:5:"false"; = false s:4:"null"; = false int i:0; = false i:1; = false i:0; = false i:-1; = false double d:0; = false d:0.1; = false d:-0; = false d:-0.1; = false bool b:1; = false b:0; = true null N; = false class O:8:"stdClass":0:{} = false bits i:0; = false i:0; = false i:1; = false i:175; = false x == 0 array a:0:{} = false a:1:{i:0;s:0:"";} = false a:1:{i:0;s:1:"e";} = false string s:4:"test"; = false s:0:""; = false s:1:" "; = false s:1:"1"; = false s:1:"0"; = true s:2:"00"; = true s:2:"-0"; = true s:3:"0.0"; = true s:3:"0.1"; = false s:4:"-0.0"; = true s:4:"-0.1"; = false s:4:"true"; = false s:5:"false"; = false s:4:"null"; = false int i:0; = true i:1; = false i:0; = true i:-1; = false double d:0; = true d:0.1; = false d:-0; = true d:-0.1; = false bool b:1; = false b:0; = true null N; = true class Notice: Object of class stdClass could not be converted to int in /in/joVGh on line 70 O:8:"stdClass":0:{} = false bits i:0; = true i:0; = true i:1; = false i:175; = false x == 1 array a:0:{} = false a:1:{i:0;s:0:"";} = false a:1:{i:0;s:1:"e";} = false string s:4:"test"; = false s:0:""; = false s:1:" "; = false s:1:"1"; = true s:1:"0"; = false s:2:"00"; = false s:2:"-0"; = false s:3:"0.0"; = false s:3:"0.1"; = false s:4:"-0.0"; = false s:4:"-0.1"; = false s:4:"true"; = false s:5:"false"; = false s:4:"null"; = false int i:0; = false i:1; = true i:0; = false i:-1; = false double d:0; = false d:0.1; = false d:-0; = false d:-0.1; = false bool b:1; = true b:0; = false null N; = false class Notice: Object of class stdClass could not be converted to int in /in/joVGh on line 66 O:8:"stdClass":0:{} = true bits i:0; = false i:0; = false i:1; = true i:175; = false x > 0 array a:0:{} = true a:1:{i:0;s:0:"";} = true a:1:{i:0;s:1:"e";} = true string s:4:"test"; = true s:0:""; = false s:1:" "; = false s:1:"1"; = true s:1:"0"; = false s:2:"00"; = false s:2:"-0"; = false s:3:"0.0"; = false s:3:"0.1"; = true s:4:"-0.0"; = false s:4:"-0.1"; = false s:4:"true"; = true s:5:"false"; = true s:4:"null"; = true int i:0; = false i:1; = true i:0; = false i:-1; = false double d:0; = false d:0.1; = true d:-0; = false d:-0.1; = false bool b:1; = true b:0; = false null N; = false class Notice: Object of class stdClass could not be converted to int in /in/joVGh on line 74 O:8:"stdClass":0:{} = true bits i:0; = false i:0; = false i:1; = true i:175; = true x < 0 array a:0:{} = false a:1:{i:0;s:0:"";} = false a:1:{i:0;s:1:"e";} = false string s:4:"test"; = false s:0:""; = true s:1:" "; = true s:1:"1"; = false s:1:"0"; = false s:2:"00"; = false s:2:"-0"; = false s:3:"0.0"; = false s:3:"0.1"; = false s:4:"-0.0"; = false s:4:"-0.1"; = true s:4:"true"; = false s:5:"false"; = false s:4:"null"; = false int i:0; = false i:1; = false i:0; = false i:-1; = true double d:0; = false d:0.1; = false d:-0; = false d:-0.1; = true bool b:1; = false b:0; = false null N; = false class Notice: Object of class stdClass could not be converted to int in /in/joVGh on line 78 O:8:"stdClass":0:{} = false bits i:0; = false i:0; = false i:1; = false i:175; = false ++x array Fatal error: Uncaught TypeError: Cannot increment array in /in/joVGh:82 Stack trace: #0 /in/joVGh(130): do_op('++x', Array) #1 {main} thrown in /in/joVGh on line 82
Process exited with code 255.

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:
28.99 ms | 421 KiB | 5 Q