PHP のマジックメソッド

WBOY
リリース: 2016-06-23 13:19:51
オリジナル
722 人が閲覧しました

PHP は、__ (アンダースコア 2 つ) で始まるすべてのクラスメソッドをマジックメソッドとして予約します。したがって、メソッドを定義するときは、マジック メソッドを除き、2 つのアンダースコア接頭辞を使用しないことをお勧めします。

マジック メソッドには、__construct()、__destruct()、__call()、__callStatic()、__get()、__set()、__isset()、__unset()、__sleep()、__wakeup()、__toString( などのメソッドが含まれます) )、__invoke()、__set_state()、__clone()、__debugInfo()。

次に、__sleep() と __wakeup() の違いについて話しましょう:

構文:

1 public array __sleep(void)2 3 void __wakeup(void)
ログイン後にコピー

serialize() 関数は、クラスにマジック メソッド __sleep() があるかどうかを確認します。存在する場合、このメソッドはシリアル化が実行される前に呼び出されます。この関数を使用すると、オブジェクトをクリーンアップし、シリアル化する必要があるオブジェクト内のすべての変数の名前を含む配列を返すことができます。メソッドが何も返さない場合、NULL がシリアル化され、E_NOTICE レベルのエラーが生成されます。

__sleep() メソッドは、コミットされていないデータを送信し、同様のクリーニング操作を実行するためによく使用されます。同時に、この機能は、大きなオブジェクトがいくつかあるものの、すべてを保存する必要がない場合に便利です。

対照的に、unserialize() は __wakeup() メソッドがあるかどうかを確認します。存在する場合、__wakeup メソッドが最初に呼び出され、オブジェクトに必要なリソースが事前に準備されます。

__wakeup() は、データベース接続の再確立やその他の初期化操作の実行などの逆シリアル化操作でよく使用されます。

りー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート