3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php function error_handler($errno, $errstr, $errfile, $errline) { throw new ErrorException($errstr, $errno, $errno, $errfile, $errline); } set_error_handler('error_handler'); try { echo 5 / 0; } catch(ErrorException $error) { echo new ErrorExceptionHTMLDecorator($error); } /* WARNING Message: Division by zero Code: 2 Line: 71 File: C:\webroot\www\error.php */ class ErrorExceptionHTMLDecorator { protected $error; protected static $levels = array( E_ERROR => 'ERROR', E_WARNING => 'WARNING', E_PARSE => 'PARSING ERROR', E_NOTICE => 'NOTICE', E_CORE_ERROR => 'CORE ERROR', E_CORE_WARNING => 'CORE WARNING', E_COMPILE_ERROR => 'COMPILE ERROR', E_COMPILE_WARNING => 'COMPILE WARNING', E_USER_ERROR => 'USER ERROR', E_USER_WARNING => 'USER WARNING', E_USER_NOTICE => 'USER NOTICE', E_STRICT => 'STRICT NOTICE', E_RECOVERABLE_ERROR => 'RECOVERABLE ERROR' ); public function __construct(ErrorException $error) { $this->error = $error; } public function render() { $level = isset(self::$levels[$this->error->getSeverity()]) ? self::$levels[$this->error->getSeverity()] : 'Unknown Error'; return sprintf( ' <h4>%s</h4> <strong>Message:</strong> %s<br /> <strong>Code:</strong> %d<br /> <strong>Line:</strong> %s<br /> <strong>File:</strong> %s ', $level, $this->error->getMessage(), $this->error->getCode(), $this->error->getLine(), $this->error->getFile() ); } public function __toString() { return strip_tags($this->render()); } }
Output for 5.2.0 - 5.6.25, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0RC5
WARNING Message: Division by zero Code: 2 Line: 14 File: /in/AUZ8U
Output for 5.1.0 - 5.1.6
Fatal error: Uncaught exception 'ErrorException' with message 'Use of undefined constant E_RECOVERABLE_ERROR - assumed 'E_RECOVERABLE_ERROR'' in /in/AUZ8U:18 Stack trace: #0 /in/AUZ8U(18): error_handler() #1 {main} thrown in /in/AUZ8U on line 18
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Fatal error: Class 'ErrorException' not found in /in/AUZ8U on line 5
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_NEW in /in/AUZ8U on line 5
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_NEW in /in/AUZ8U on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/AUZ8U on line 5
Process exited with code 255.