3v4l.org

run code in 300+ PHP versions simultaneously
<?php function mockInputRead() { static $commands = [ 'open foo', 'close bar', 'dance with the devil in the pale moonlight', 'exit', ]; return array_shift($commands); } function vprintfln($format, array $args = []) { vprintf($format . PHP_EOL, $args); } $handlers = [ 'open' => function ($target) { vprintfln('Opening "%s"', [$target]); return 0; }, 'close' => function ($target) { vprintfln('Closing "%s"', [$target]); return 0; }, 'exit' => function () { vprintfln('Exiting...'); return 1; }, ]; $invalidHandler = function ($command) { vprintfln('## Invalid command "%s"', [$command]); }; while (true) { list($command, $argument) = explode(' ', mockInputRead(), 1) + [null, null]; if (!empty($command)) { if (isset($handlers[$command])) { if ($handlers[$command]($argument) > 0) { break; } } else { $invalidHandler($command); } } } vprintfln('Bye!');
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.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
## Invalid command "open foo" ## Invalid command "close bar" ## Invalid command "dance with the devil in the pale moonlight" Exiting... Bye!
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/Fb6F6 on line 6
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1, 5.0.0 - 5.0.5
Parse error: parse error, unexpected '[' in /in/Fb6F6 on line 6
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/Fb6F6 on line 6
Process exited with code 255.

preferences:
330.75 ms | 401 KiB | 456 Q