カテゴリー:
マジックメソッド
閲覧数:728 配信日:2014-01-05 20:45
確認コード例
privateプロパティに対して、マジックメソッドを用意
・privateプロパティに対して、個別指定のアクセサではなく、マジックメソッドを用意(意味合い的にはマジックメソッドのアクセサ)
・プロパティ呼び出し方を、「アクセサ経由の書き方から、直呼び出し」へ戻したことに注意が必要
class Entry {
private $title;
public function __get($key) {
return $this->$key;
}
public function __set($key, $value) {
$this->$key = $value;
}
}
$entry = new Entry();
$entry->title = 'title';
echo $entry->title; //title
privateプロパティに対して無意味な、個別アクセサも追加してみる
・privateプロパティに対して、個別アクセサと「マジックメソッドアクセサ(正式名称不明)」を用意
・「プロパティ直呼び出し」+「アクセサ経由の書き方」を併用
class Entry {
private $title;
private $body;
public function __get($key) {
return $this->$key;
}
public function __set($key, $value) {
$this->$key = $value;
}
public function getBody() { //ゲッター
return $this->body;
}
public function setBody($body) { //セッター
$this->body = $body;
}
}
$entry = new Entry();
$entry->title = 'title';
echo $entry->title; //title
$entry->setBody("body");
echo $entry->getBody(); //body