3v4l.org

run code in 300+ PHP versions simultaneously
<?php function myErrorHandler($errno, $errstr, $errfile, $errline) { if ( E_RECOVERABLE_ERROR===$errno ) { echo "'catched' catchable fatal error\n"; throw new ErrorException($errstr, $errno, 0, $errfile, $errline); // return true; } return false; } set_error_handler('myErrorHandler'); class ClassA { public function method_a (ClassB $b) {} } class ClassWrong{} try{ $a = new ClassA; $a->method_a(new ClassWrong); } catch(Exception $ex) { echo "catched\n"; } echo 'done.'; /* throw new MyException('This is a really bad error', 123); final public ExceptionException::getPrevious ( void ) error_reporting(E_ALL); function exception_error_handler($errno, $errstr, $errfile, $errline ) { throw new ErrorException($errstr, '00007600', $errno, $errfile, $errline, new Exception('jjj')); } set_error_handler("exception_error_handler"); try { echo $x; } catch(Exception $e) { var_dump($e->getPrevious()); }*/
Output for git.master, git.master_jit, rfc.property-hooks
Fatal error: Uncaught TypeError: ClassA::method_a(): Argument #1 ($b) must be of type ClassB, ClassWrong given, called in /in/mFJCT on line 21 and defined in /in/mFJCT:14 Stack trace: #0 /in/mFJCT(21): ClassA->method_a(Object(ClassWrong)) #1 {main} thrown in /in/mFJCT on line 14
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:
41.81 ms | 401 KiB | 8 Q