タグ

2014年7月30日のブックマーク (2件)

  • 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

  • PHPのオブジェクト指向 - mikedaの日記

    クラス定義、継承、インタフェース new class extends interface implements 抽象メソッドに抽象クラス abstruct アクセス制御 public private protected コンストラクタ、デストラクタ __constract() __destruct() 静的メンバ static 定数 const オブジェクト自身の参照 this クラス、親クラス self::method() parent::method() 存在しないプロパティへのアクセスをさばく __set() __get() オブジェクトのコピーを作る clone() __clone() Javaだ。

    PHPのオブジェクト指向 - mikedaの日記