3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface I1 { public function fromThing(ThingA $thing): I1; } interface I2 { public function fromThing(ThingB $thing): I2; } class ThingA {} class ThingB {} class Impl implements I1, I2 { public function fromThing(ThingA|ThingB $thing): I1&I2 { return new self(); } } $i = new Impl();
Output for 8.1.0 - 8.1.34, 8.2.22 - 8.2.30, 8.3.5 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Output for 8.0.1 - 8.0.17
Parse error: syntax error, unexpected token "&", expecting ";" or "{" in /in/ETstD on line 18
Process exited with code 255.
Output for 7.4.0 - 7.4.28
Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /in/ETstD on line 18
Process exited with code 255.

preferences:
82.19 ms | 922 KiB | 4 Q