カテゴリー:
マジックメソッド
閲覧数:867 配信日:2013-12-27 12:28
プロパティ挙動
プロパティがなければ作成
・その際のアクセス修飾子はpublic
class Entry {
}
$entry = new Entry();
$entry->title = 'title'; //プロパティがない場合、自動作成される
echo $entry->title;
// 処理結果
// title
publicプロパティを予め用意
・但し、publicなためアクセサ不要(どこからでもアクセス可能なため)
class Entry {
public $title;
}
$entry = new Entry();
$entry->title = 'title';
echo $entry->title;
// 処理結果
// title
protectedプロパティ … 要アクセサ
・protectedプロパティを用意すると、「Fatal error: Cannot access protected property Entry::$title」エラー
・要アクセサ
class Entry {
protected $title;
}
$entry = new Entry();
$entry->title = 'title';
echo $entry->title;
privateプロパティ … 要アクセサ
・privateプロパティでも同様。「Fatal error: Cannot access private property Entry::$title」エラー
・要アクセサ
class Entry {
private $title;
}
$entry = new Entry();
$entry->title = 'title';
echo $entry->title;
privateプロパティに対して、アクセサ用意
・プロパティ直呼び出しから、アクセサ経由の書き方へと変更
class Entry {
private $title;
public function getTitle() {//ゲッター
return $this->title;
}
public function setTitle($title) {//セッター
$this->title = $title;
}
}
$entry = new Entry();
$entry->setTitle("title");
echo $entry->getTitle(); //title