ホームページ >バックエンド開発 >PHPチュートリアル >PHP の 11 の魔法のメソッドを 1 分で理解する
PHP についてたくさんのことを学びました。PHP の 11 の魔法のメソッドを完全にマスターできたでしょうか。そうでない場合は、この記事に従って学習を続けてください
1, __get 、__set
2, __isset, __unset
__isset ( $property ) このメソッドは、isset が設定されたときに呼び出されます。 () 関数は未定義のプロパティで呼び出されます
4、__autoload
__autoload 関数を呼び出すときに呼び出され、使用時に自動的に呼び出されます。まだ定義されていないクラス。この関数は、PHP がエラーで失敗する前に、スクリプト エンジンに必要なクラスをロードする最後のチャンスを与えます。
注: __autoload 関数でスローされた例外は、catch ステートメント ブロックではキャッチできず、致命的なエラーが発生します。
5, __construct, __destruct
#__construct コンストラクター メソッド。このメソッドは、オブジェクトの作成時に呼び出されます。利点は、コンストラクター メソッドが次のものを持てることです。クラスの名前に関係なく、一意の名前。そのため、クラスの名前を変更するときに、コンストラクター メソッドの名前を変更する必要はありません。__destruct デストラクター メソッド、PHPオブジェクトが破棄される前に、デストラクター メソッドが使用されます (つまり、メモリ コードをクリアする前にこのメソッドを呼び出してメモリをクリアします。スクリプトがオブジェクトに関連付けられなくなったと PHP が判断すると、デストラクターが呼び出されます。関数内で)名前空間の場合、これは関数が返されたときに発生します。グローバル変数の場合、これは発生します。スクリプトの最後で、オブジェクトを明示的に破棄したい場合は、オブジェクトを指す変数に他の値を割り当てることができます。通常は代入されます。変数を NULL に設定するか、unset を呼び出します。6, __clone
PHP 5.2.0 より前では、__toString メソッドは echo() または print() と組み合わせて使用した場合にのみ有効でした。 PHP 5.2.0 以降では、任意の文字列環境 (%s 修飾子を使用した printf() など) で有効になりますが、非文字列環境 (%d 修飾子の使用など) では使用できません。 PHP 5.2.0 以降、__toString メソッドが定義されていないオブジェクトが文字列に変換されると、E_RECOVERABLE_ERROR エラーが報告されます。
8、__sleep、__wakeup
__sleep はシリアル化中に使用され、
__wakeup は逆シリアル化中に呼び出されます。 serialize() は、クラス内にマジック名 __sleep を持つ関数があるかどうかを確認します。その場合、関数はシリアル化の前に実行されます。これはオブジェクトをクリアし、シリアル化する必要があるオブジェクト内のすべての変数の名前を含む配列を返す必要があります。
__sleep を使用する目的は、オブジェクトが持つデータベース接続を閉じたり、保留中のデータを送信したり、同様のクリーンアップ タスクを実行したりすることです。さらに、この機能は、完全に保管する必要のない非常に大きなオブジェクトがある場合にも役立ちます。
逆に、unserialize() はマジック名 __wakeup を持つ関数の存在をチェックします。この関数は、オブジェクトが持つ可能性のあるリソースが存在する場合、それを再構築できます。 __wakeup を使用する目的は、シリアル化中に失われた可能性のあるデータベース接続を再確立し、他の再初期化タスクを処理することです。
9, __set_state
var_export() が呼び出されるとき、この静的メソッドが呼び出されます (PHP 5.1.0 以降で有効)。このメソッドの唯一のパラメータは、array('property' => value, ...) の形式で配置されたクラス プロパティを含む配列です。
10, __invoke
関数を呼び出してオブジェクトを呼び出そうとすると、__invoke メソッドが自動的に呼び出されます。 PHP5.3.0 以降で有効です
11、__callStatic
これは __call() マジック メソッドと同様に機能します。__callStatic() は静的メソッド呼び出しを処理します。PHP5.3.0上記のバージョンでは動作しますが、PHP では __callStatic() メソッドの定義が厳格化されており、メソッドは public であり、static として宣言されている必要があります。同様に、__call() マジック メソッドは、他のすべてのマジック メソッドと同様に、パブリックとして定義する必要があります。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP の 11 の魔法のメソッドを 1 分で理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。