feeds2011/09/26カテゴリー:PHPPHPのマジックメソッドTweetマジックメソッドとは、オブジェクトに対して特定の操作が行われた時に自動的に呼ばれる特殊なメソッドです。マジックメソッドを使うと特定の処理に対するオブジェクトの挙動を変更することができるため、PHPでクラスを扱う上でのメリットの一つと言えます。マジックメソッドは、必要なければ省略することもできます。目次__get__set__isset__unset__call__callStatic__construct__destruct__sleep__wakeup__toString__invoke__set_state__clone__get__getは、定義されていないプロパティやアクセス権のないプロパティを取得しようとした際に呼ばれます。第1引数に取得しようとしたプロパティ名が渡されます。必要に応じて、returnで戻り値を返すことができます。called.hoge*/?&gt;__set__setは、定義されていないプロパティやアクセス権のないプロパティに値を代入しようとした際に呼ばれます。第1引数にプロパティ名、第2引数に代入しようとした値が渡されます。called.?&gt;__isset__issetは、定義されていないプロパティやアクセス権のないプロパティに対して、isset()やempty()が実行された際に呼ばれます。第1引数にプロパティ名が渡されます。必要に応じて、returnで論理値を返すことができます。called.bool(false)*/?&gt;__unset__unsetは、定義されていないプロパティやアクセス権のないプロパティに対して、unset()が実行された際に呼ばれます。第1引数にプロパティ名が渡されます。called.?&gt;__call__callは、定義されていないメソッドやアクセス権のないメソッドが呼ばれた際に呼ばれます。第1引数に呼び出そうとしたメソッド名、第2引数に渡そうとした引数が配列で渡されます。必要に応じて、returnで戻り値を返すことができます。called.bool(false)*/?&gt;__callStatic__callStaticは、定義されていないstaticメソッドやアクセス権のないstaticメソッドが呼ばれた際に呼ばれます。第1引数に呼び出そうとしたstaticメソッド名、第2引数に渡そうとした引数が配列で渡されます。必要に応じて、returnで戻り値を返すことができます。called.bool(false)*/?&gt;__construct__constructは、コンストラクタとも呼ばれ、クラスがインスタンス化される際に実行されます。多くの場合、コンストラクタで初期化に必要な処理を行います。called.?&gt;__destruct__destructは、デストラクタとも呼ばれ、インスタンスが破棄される際に実行されます。参照を明示的に破棄してリファレンスカウントを0にしなかった場合は、PHPプログラムの実行終了時にデストラクタが実行されます。called.?&gt;__sleep__sleepは、オブジェクトをserialize()関数に渡した際に呼ばれます。__sleep()は、戻り値として配列を返すことが前提となっており、返さなかった場合はE_NOTICEが発生します。called.?&gt;__wakeup__wakeupは、文字列からオブジェクトをunserialize()する際に呼ばれます。called.?&gt;__toString__toStringは、オブジェクトを文字列にキャストした際に呼ばれます。戻り値として文字列を返す必要があります。called.Foo*/?&gt;__invoke__invokeは、オブジェクトを関数として実行しようとした際に呼ばれます。PHP5.3以降で利用可能です。called.?&gt;__set_state__set_stateは、var_export()したオブジェクトを復元する際に呼ばれます。引数でエクスポートされたプロパティが連想配列で渡されます。int(1)}*/?&gt;__clone__cloneは、cloneキーワードによりオブジェクトの複製が作成された際にクローン側で呼ばれます。