3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace Concrete\Foo { class Foo {} class_alias('\Concrete\Foo\Foo', 'DerpFoo'); } namespace Concrete\BetterFoo { use DerpFoo; class BetterFoo extends DerpFoo {} } namespace Concrete\Test { class Test { public function __construct(DerpFoo $foo) {} } $f = new Test(new \Concrete\BetterFoo\BetterFoo); }
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 Concrete\Test\DerpFoo, Concrete\BetterFoo\BetterFoo given, called in /in/OQJur on line 25 and defined in /in/OQJur:21 Stack trace: #0 /in/OQJur(25): Concrete\Test\Test->__construct(Object(Concrete\BetterFoo\BetterFoo)) #1 {main} thrown in /in/OQJur on line 21
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.44 ms | 401 KiB | 8 Q