PHP プログラミング

PHPの基本 Part 8(クラスとオブジェクトの機能)(全10回)

Javaプログラマの目線でPHPの基本をまとめています。

マジックメソッド

オブジェクトに対して特定の操作を行ったときに自動的に呼ばれるメソッド。
それぞれの説明、使用例はPHPマニュアル: マジックメソッドを参照。

  • __construct()
  • __destruct()
  • __call()
  • __callStatic()
  • __get()
  • __set()
  • __isset()
  • __unset()
  • __sleep()
  • __wakeup()
  • __toString()
  • __invoke()
  • __set_state()
  • __clone() 

オーバーロード

__get(), __set(), __unset(), __isset()は、アクセス不能なプロパティに対して操作をしようとしたときに呼ばれる。

このメソッドをオーバーロードすることでカプセル化されたプロパティへのアクセス手段を提供できる。

遅延静的束縛(Late Static Bindings)(PHP5.3.0以降)

親クラスから子クラスでオーバーライドされているメソッドを呼ぶときに、selfキーワードを使用すると、親クラスのメソッドとして解決されてしまい、子クラスの実装が呼び出されない。

これを解決するためには、staticキーワードを使用する。

static::doSomething();や、$a = static::name;のように用いると、子クラスのメソッド、定数、プロパティを親クラスで参照できる。

実行時の情報をもとにクラスを解決してくれる。get_called_class関数を使用すれば、コール元の遅延静的束縛のクラス名を取得できる。遅延静的束縛といっても、静的である必要はない。