3v4l.org

run code in 300+ PHP versions simultaneously
<?php use function PHPStan\dumpType; use function PHPStan\Testing\assertType; class A { public function __construct(private ?B $b) {} public function b(): ?B { return $this->b; } } class B { public function __construct(private ?C $c) {} public function c(): ?C { return $this->c; } } class C { public function __construct(private ?D $d) {} public function d(): ?D { return $this->d; } } class D {} $a = new A(new B(null)); var_dump($a->b()?->c()?->d() ?? 'boom!');

preferences:
37.25 ms | 404 KiB | 5 Q