クラスでのカプセル化
プロパティへのアクセス権を制限する
プロパティをprivateで定義すると、クラスの外部からアクセス不可能になる(そのクラスのメソッドでしかアクセスできなくなる)。
目的
- アクセスの手段を当該クラスのゲッターメソッドとセッターメソッドに限定する。それらに明示的な型宣言やバリデーションを施すことで不正値の読み書きを防ぐ。
- (ゲッターメソッドだけを用意することで)プロパティを読み取り専用にする。
<?php class Menu { // プライベートなプロパティ private $name; public function __construct($name) { $this->name = $name; } // ゲッターメソッドの定義 public function getName(): string { // 型宣言 return $this->name; } // セッターメソッドの定義 public function setName($string): string { // 型宣言 if (mb_strlen($string) < 16) { // 文字数制限 $this->name = $string; } } } ?>