2025-04-14

在以前类初始化赋值是需要这样的

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

 

标签: PHP