タグ

ブックマーク / masutaka.net (1)

  • PHP の特殊メソッド __get(), __set()

    class に public な変数(プロパティ)を定義することは、オブジェクト指 向のカプセル化の観点から論外ですが、private なプロパティを定義して、 get_プロパティ名(), set_プロパティ名() とかを作るのもイケてなかった のですね。(薄々気づいてはいましたが…。) PHP には __get() と __set() という特殊メソッドがあります。 例えば $myclass = new MyClass; $myclass->hoge = 1; の場合、定義していれば MyClass::__set() が呼ばれます。 以下のように private なプロパティを定義し、__get(), __set() を介し てアクセス制御すると良いでしょう。このプロパティは読み取り専用、こ のプロパティは両方大丈夫とか。 class Post { private $title; pri

  • 1