PHP5 のマジックメソッドに関して調べたメモ

マジックメソッドとは

PHP5 でクラスを作成すると自動的に作成されているメソッドのこと。PHPマニュアルによると

PHP クラスにおける特殊関数の名前です。 これらの関数に関連する特別な機能を使用する場合を除き、 クラス内にこれらの名前を有する関数を作成してはいけません。

と説明されています。
getter や setter にあたるのがマジックメソッドの __get, __set です。

マジックメソッドの一覧

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

__toString

クラスを echo , print で使用されたときのみコールされる。

__sleep, __wakeup

serialize() 関数でシリアル化する前に __sleep がコールされる。unserialize() 関数実行前に __wakeup がコールされる。

__get, __set

プロパティに値をセットするときに __set, プロパティの値を取得するときに __get がコールされる。ただしコールされるのはプロパティが private, protected のときのみ(参考:getter, setterマジックメソッド__get, __setの変な挙動 – ぎじゅっやさん

追記
コメントよりご指摘いただきましたので修正します。
__get, __set はそのプロパティにアクセスできない、もしくは存在しないときに実行されます。

参考 URL
PHP: マジックメソッド – Manual
getter, setterマジックメソッド__get, __setの変な挙動 – ぎじゅっやさん

関連する投稿