PHP 8.2 Readonlyプロパティについて

2023-03-20
タグ PHP

PHP 8.2では、Readonlyプロパティが導入されました。この機能を使うことで、オブジェクトのプロパティを不変にでき、一度設定された値を後から変更できなくなります。以下に、PHP 8.2 Readonlyプロパティの使用方法とコード例を紹介します。

基本的なReadonlyプロパティの使用

Readonlyプロパティは、クラスのプロパティを一度設定した後、変更できないようにします。

php
class 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プロパティを持たせることができます。

php
class 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プロパティを定義しています。コンストラクタで一度設定された値は、後から変更できません。

前のページに戻る