3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A1{} class A2 extends A1{} class C1{ function test() : A1{ return new A1; } } class C2 extends C1{ function test() : A2{ return new A2; } } $x = new C1; var_dump($x->test()); $x = new C2; var_dump($x->test());

preferences:
95.12 ms | 2305 KiB | 5 Q