3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace Concrete\Test { use DerpFoo; class Test { public function __construct(DerpFoo $foo) {} } $f = new Test(new \Concrete\BetterFoo\BetterFoo); } namespace Concrete\Foo { class Foo {} class_alias('\Concrete\Foo\Foo', 'DerpFoo'); } namespace Concrete\BetterFoo { class BetterFoo extends \Concrete\Foo\Foo {} }
Output for git.master, git.master_jit, rfc.property-hooks
Fatal error: Uncaught TypeError: Concrete\Test\Test::__construct(): Argument #1 ($foo) must be of type DerpFoo, Concrete\BetterFoo\BetterFoo given, called in /in/B7N27 on line 9 and defined in /in/B7N27:6 Stack trace: #0 /in/B7N27(9): Concrete\Test\Test->__construct(Object(Concrete\BetterFoo\BetterFoo)) #1 {main} thrown in /in/B7N27 on line 6
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:
34.28 ms | 401 KiB | 8 Q