3v4l.org

run code in 500+ PHP versions simultaneously
<?php interface FooInterface {} class A implements FooInterface {} class B implements FooInterface {} interface DoX { public function run(): FooInterface; } class Imp implements DoX { /** * @return \A|\B */ public function run() { return new A(); } }
Output for 8.5.0 - 8.5.3
Fatal error: Declaration of Imp::run() must be compatible with DoX::run(): FooInterface in /in/4QVaj on line 17 Stack trace: #0 {main}
Process exited with code 255.
Output for 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18
Fatal error: Declaration of Imp::run() must be compatible with DoX::run(): FooInterface in /in/4QVaj on line 17
Process exited with code 255.

preferences:
49.69 ms | 847 KiB | 4 Q