2008年11月8日土曜日

PHP5のマジックメソッド

第2回設計勉強会に参加しました | Shin x blogを読んで初めてautoloadを知った。

ついでにマジックメソッドについてまとめてみる。


classのマジックメソッド



グローバル関数なマジックメソッド
  • __autoload()
    • 未定義のclassが参照された場合に呼ばれる
    • この関数の中でクラス名等に紐付いたファイルをインクルードさせれば、classを使う時にいちいちrequire/includeしなくてよくなる
    • newでのインスタンス生成や静的メソッドの呼び出しの他、extendsや型宣言などによるclassの参照でも呼ばれる
    • 参考:PHP: オブジェクトのオートローディング - Manual


今まで__construct, __destruct, __call, __get, __setくらいしか知らなかった。
__constructは別にすると、この中では__autoloadが特に便利。
また、__call, __get, __setはコーディングミス防止に役立つので生産性向上に寄与する。「重いので使うな」的なことが書かれていることが多いので、それなりに負荷のあるサイトでは使わないほうがよいのかも。(1ページ表示するのに__setを1000回使うサイトとか!)


参考:PHP: マジックメソッド - Manual

0 件のコメント:

ブログ アーカイブ

tags