# 推奨: 「PHP では、「__」、つまり 2 つのアンダースコアで始まるすべてのクラス メソッドがマジック メソッドとして予約されています。PHP のマジック メソッドには、「__construct()」、「__destruct()」、および「 __call()」、「__callStatic()」、「__get()」など。
PHP ビデオ チュートリアル 」
#魔法のメソッド__construct()、__destruct()、__call()、__callStatic()、__get()、__set()、__isset()、__unset()、__sleep()、__wakeup()、__toString()、__invoke()、__set_state ()、__clone()、__debugInfo() は、PHP ではマジック メソッドと呼ばれます。マジック機能を使用しない限り、独自のクラス メソッドに名前を付けるときにこれらのメソッド名を使用することはできません。
注意public __sleep ( void ) : array#__wakeup ( void ) : voidserialize( ) 関数は、クラスにマジック メソッド __sleep() があるかどうかをチェックします。存在する場合、このメソッドが最初に呼び出され、次にシリアル化操作が実行されます。この関数を使用すると、オブジェクトをクリーンアップし、シリアル化する必要があるオブジェクト内のすべての変数の名前を含む配列を返すことができます。メソッドが何も返さない場合、NULL がシリアル化され、E_NOTICE レベルのエラーが発生します。 注:__sleep() は、親クラスのプライベート メンバーの名前を返すことはできません。そうすると、E_NOTICE レベルのエラーが発生します。代わりに Serializable インターフェイスを使用できます。 __sleep() メソッドは、コミットされていないデータや同様のクリーンアップ操作を送信するためによく使用されます。同時に、この機能は、大きなオブジェクトがいくつかあるものの、すべてを保存する必要がない場合に便利です。 対照的に、unserialize() は __wakeup() メソッドがあるかどうかを確認します。存在する場合、__wakeup メソッドが最初に呼び出され、オブジェクトに必要なリソースが事前に準備されます。 __wakeup() は、データベース接続の再確立やその他の初期化操作の実行など、逆シリアル化操作でよく使用されます。PHP では、__ (アンダースコア 2 つ) で始まるすべてのクラス メソッドがマジック メソッドとして予約されています。したがって、上記のマジック メソッドを除き、クラス メソッドを定義する場合は、先頭に __ を付けないことをお勧めします。
#__sleep() と __wakeup()
以上がphp マジックメソッドの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。