- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- foofoobar
<?php
class Foo {
public function __construct() {
echo 'foo';
}
}
class Bar {
public function __construct() {
echo 'bar';
}
}
class Build {
private ?Foo $foo = null;
private ?Bar $bar = null;
function foo(): Foo {
return $this->foo ?? new Foo();
}
function bar(): Bar {
return $this->bar ??= new Bar();
}
}
$build = new Build();
$build->foo(); $build->foo();
$build->bar(); $build->bar();