オブジェクト指向プログラミングでは、PHP はプログラミングに非常に便利な一連のマジック メソッドを提供します。 PHP のマジック メソッドは通常、__ (2 つのアンダースコア) で始まり、明示的な呼び出しを必要としませんが、特定の条件によってトリガーされます。この記事では、PHP で使用できるマジック メソッドを簡単にまとめます。
#__construct()
__construct() はクラスのコンストラクターであり、最も一般的に使用される関数です。オブジェクトを作成するときに、コンストラクターで初期化作業を行うことができます。インスタンス化時に対応する数のパラメーターが渡される限り、コンストラクターには任意の数のパラメーターを定義できます。コンストラクターで例外が発生すると、オブジェクトの作成が妨げられます。__desctruct()
__desctruct() はクラスのデストラクターです。通常、オブジェクトが破棄されるか、スクリプトの実行が終了すると、自動的に呼び出されます。パラメータを受け取りません。データベース接続を閉じるなど、一部のクリーンアップ作業はデストラクターで実行されることがよくあります。__call()
__call() は、存在しないメソッド、またはアクセスできないメソッドを呼び出すときに呼び出されます。これは 2 つのパラメータを受け取ります。1 つは呼び出されるメソッドの名前で、もう 1 つは関数パラメータを含む配列です。静的メソッドが存在する場合、このメソッドを使用して、サブオブジェクト__callStatic()
__get()
__get() は、存在しないプロパティまたは非公開プロパティにアクセスしようとすると呼び出されます。アクセスされた属性の名前を表すパラメーターを受け取り、変更しようとすると属性の値__set()
__set() を返します。使用不可 属性にアクセスするときに呼び出され、属性の名前を示すパラメーターと属性の値を示すパラメーターの 2 つを受け取ります。__isset()
__isset() は、アクセスできないプロパティに対して isset() または empty() メソッドが呼び出されたときに呼び出されます。属性の名前。プロパティが存在するかどうかを示すブール値を返す必要があります。__unset()
__unset() は、アクセスできないプロパティを破棄するために unset() 関数が呼び出されたときに呼び出されます。プロパティの名前。__sleep()
__sleep() は、オブジェクトをシリアル化するとき (serialize() を呼び出すとき) に呼び出されます。パラメーターは取らず、シリアル化する必要があるすべてのプロパティを含む配列を返す必要があります。このマジック メソッド内では、他の操作も実行できます。##注意すべき点は、実行中のオブジェクトに影響を与える可能性があるため、この関数では破棄操作を実行しないことです。
#__wakeup()
__wakeup() は、格納されたオブジェクトを逆シリアル化するときに呼び出されます。パラメータを受け取らず、値も返しません。これを使用して、シリアル化中に失われたデータベース接続やリソースを処理できます。
__toString()
__toString() 文字列としてオブジェクトを使用する場合、呼び出されますが、呼び出されません。パラメータを受け取ります。このメソッドを使用すると、オブジェクトの表現を定義できます。
__invoke()
関数を呼び出してオブジェクトを呼び出すときの応答メソッド
__set_state()
この静的メソッドは、クラスをエクスポートするために var_export() を呼び出すときに呼び出されます。
__clone()
__clone() は上記の問題を解決できます。このマジック メソッドは、オブジェクトに対して clone キーワードが使用されるときに呼び出されます。
以上がPHPのマジックメソッドとは何ですか?またその機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。