在以前类初始化赋值是需要这样的
class MyClass {
private $a;
private $b;
public function __construct(string $a, string $b) {
$this->a = $a;
$this->b = $b;
var_dump($this->a);
}
}
PHP8
class Abcd {
public function __construct(private string $a, public private $b) {
var_dump($this->a);
}
}
或者如下:
class Abcd {
public function __construct(public readonly string $a, public readonly string $b) {
var_dump($this->a);
}
}
$abcd = new Abcd('a', 'b');
var_dump($abcd->a);
原文: https://www.php.net/manual/en/language.oop5.decon.php#language.oop5.decon.constructor.promotion