はじめに
PHP8
からコンストラクタで行うプロパティの定義を省略できることを業務中レビューを頂いて知りました。
忘れないように備忘録として。。
レビュー前(PHP7以前の場合)
User
class User {
public string $name;
public int $age;
public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}
レビュー後(PHP8以降の場合)
User
class User {
public function __construct(public string $name, public int $age) {
}
}
このようにコンストラクタの引数にアクセス修飾子を加えることにより、コンストラクタの引数でありオブジェクトのプロパティであるとPHP
は解釈し、引数の値をプロパティに代入するようです。
まとめ
プロパティ定義を省略できることで、ソースコードも短くなりより簡単に実装できました!
簡潔なソースコードを実装する上で忘れないように!!
参考