PHP 8.2 Readonlyプロパティについて
2023-03-20
タグ
PHP
PHP 8.2では、Readonlyプロパティが導入されました。この機能を使うことで、オブジェクトのプロパティを不変にでき、一度設定された値を後から変更できなくなります。以下に、PHP 8.2 Readonlyプロパティの使用方法とコード例を紹介します。
基本的なReadonlyプロパティの使用
Readonlyプロパティは、クラスのプロパティを一度設定した後、変更できないようにします。
phpclass Article {
public readonly string $title;
public function __construct(string $title) {
$this->title = $title;
}
}
$article = new Article("PHP 8.2 の新機能");
$article->title = "変更しようとしてもエラー"; // エラー:readonly プロパティを変更できません
この例では、Article
クラスにreadonly
プロパティ$title
を定義しています。コンストラクタで一度設定した$title
は、後から変更しようとするとエラーが発生します。
複数のReadonlyプロパティを持つクラス
クラスには複数のReadonlyプロパティを持たせることができます。
phpclass Person {
public readonly string $firstName;
public readonly string $lastName;
public function __construct(string $firstName, string $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
$person = new Person("John", "Doe");
$person->firstName = "Jane"; // エラー:readonly プロパティを変更できません
この例では、Person
クラスに$firstName
と$lastName
という2つのReadonlyプロパティを定義しています。コンストラクタで一度設定された値は、後から変更できません。