PHPでは、2つのアンダースコア__で始まるメソッドをマジックメソッドと呼び、PHPにおいて重要な役割を果たします。 魔法の方法には次のようなものがあります:
__construct() と __destruct()
コンストラクターとデストラクターはよく知られているはずです。これらはオブジェクトの作成時と破棄時に呼び出されます。たとえば、ファイルを開き、オブジェクトが作成されたときにファイルを開き、オブジェクトが消滅したときにファイルを閉じる必要があります
リーリーこれら 2 つのメソッドは、継承時に拡張できます。例:
リーリー__call() と __callStatic()
これら 2 つのメソッドは、オブジェクト内でアクセスできないメソッドが呼び出されたときに呼び出されます。後者は静的メソッドです。これら 2 つのメソッドは、変数メソッド (変数関数) 呼び出しで使用できます。
リーリー__get()、__set()、__isset()、__unset()
これら 2 つの関数は、クラスのメンバー変数を取得/設定するときに呼び出されます。たとえば、オブジェクト自体のメンバー変数ではなく、オブジェクト変数を別の配列に保存します
リーリー__sleep() と __wakeup()
serialize() と unserialize() を実行すると、これら 2 つの関数が最初に呼び出されます。たとえば、オブジェクトをシリアル化する場合、そのオブジェクトにはデータベース リンクが含まれており、逆シリアル化中にリンク状態を復元したい場合は、これら 2 つの関数を再構築することでリンクを復元できます。例は次のとおりです:
リーリー__toString()
オブジェクトを文字列として扱う場合のレスポンスメソッド。たとえば、オブジェクトを出力するには echo $obj を使用します
リーリーこのメソッドは文字列のみを返すことができ、このメソッドで例外をスローすることはできません。例外をスローしないと、致命的なエラーが発生します。
__invoke()
関数呼び出しでオブジェクトを呼び出した場合のレスポンスメソッド。以下の通り
リーリー__set_state()
この静的メソッドは、クラスをエクスポートするために var_export() が呼び出されるときに呼び出されます。
リーリー__クローン()
オブジェクトのコピーが完了すると呼び出されます。例えば、記事「デザインパターンとPHP実装の詳細解説:シングルトンモード」で紹介したシングルトンモードの実装方法では、オブジェクトの複製を防ぐためにこの機能が使用されています。
リーリー魔法の定数
PHP の定数のほとんどは変更されませんが、コードの配置場所に応じて変更される 8 つの定数があり、これら 8 つの定数はマジック定数と呼ばれます。
これらのマジック定数は、現在の環境情報を取得したり、ログを記録したりするためによく使用されます。
以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。