登録日:
                            2025-02-08  
                            最終更新日:
                            2025-04-10
                        
                        php public readonly fucntion () について
public readonly function () について説明します。
readonly 修飾子とは?
PHP 8.1 で readonly プロパティが導入され、PHP 8.2 では readonly クラスも導入されました。 しかし、関数(メソッド)に readonly 修飾子を付けることはできません。
readonly プロパティ
PHP 8.1 以降、readonly プロパティを使用すると、一度だけ値を設定でき、その後は変更できません。
class User {
    public readonly string $name;
    public function __construct(string $name) {
        // コンストラクタ内でのみ設定可能
        $this->name = $name;
    }
}
$user = new User("Alice");
// "Alice"
echo $user->name;
// エラー: Readonly property User::$name cannot be reassigned
$user->name = "Bob";
readonly クラス(PHP 8.2 以降)
PHP 8.2 では、クラス全体を readonly にすることができます。これにより、そのクラスのすべてのプロパティが readonly になります。
readonly class User {
    public string $name;
    public function __construct(string $name) {
        $this->name = $name;
    }
}
readonly は関数(メソッド)には使えない
もし public readonly function () のような構文を使おうとすると、構文エラー になります。 PHP は 関数に対して readonly を適用する機能を提供していません。
class Sample {
    // エラー: Unexpected 'readonly'
    public readonly function test() {
        return "Hello";
    }
}
public readonly function という記述をしたかった意図としては、readonly プロパティを扱うメソッドの定義 や クラスに readonly を適用する ことを考えていたのかもしれません。
 
         
	 
                                                                


