3v4l.org

run code in 300+ PHP versions simultaneously
<?php final class DemoFile { private Bar $foo; public function __construct(?Bar $foo = null) { $this->foo = $foo ?? new Bar(); } public function work(): void { echo $this->foo::class; } } class Bar {} (new DemoFile(null))->work(); final class DemoFile2 { public function __construct(private readonly ?Bar $foo = new Bar()) { } public function work(): void { echo $this->foo::class; } } (new DemoFile2(null))->work();
Output for 8.3.5 - 8.3.30, 8.4.9 - 8.4.18, 8.5.2 - 8.5.3
Bar Fatal error: Uncaught TypeError: Cannot use "::class" on null in /in/VcW9g:29 Stack trace: #0 /in/VcW9g(33): DemoFile2->work() #1 {main} thrown in /in/VcW9g on line 29
Process exited with code 255.

preferences:
50.59 ms | 406 KiB | 5 Q