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:
42.88 ms | 404 KiB | 5 Q