3v4l.org

run code in 300+ PHP versions simultaneously
<?php Enum Val: string { case Bar = 'bar'; case Baz = 'baz'; } class A { public function foo(string $s) { print $s; } } class B extends A { public function foo(string|Val $s) { if (is_string($s)) { print $s; } else { print $s->value; } } } $b = new B(); $b->foo('beep'); $b->foo(Val::Baz);
Output for 8.1.0 - 8.1.33, 8.2.22 - 8.2.29, 8.3.5 - 8.3.25, 8.4.1 - 8.4.12
beepbaz
Output for 8.0.1 - 8.0.21
Parse error: syntax error, unexpected identifier "Val" in /in/GnBJr on line 3
Process exited with code 255.
Output for 7.4.0 - 7.4.30
Parse error: syntax error, unexpected 'Val' (T_STRING) in /in/GnBJr on line 3
Process exited with code 255.

preferences:
75.07 ms | 408 KiB | 5 Q