PHPマジックメソッドの使い方を詳しく解説、magicmethods_PHPチュートリアル

WBOY
リリース: 2016-07-12 08:59:24
オリジナル
874 人が閲覧しました

PHPのマジックメソッドmagicmethodsの使い方を詳しく解説

PHPでは、2つのアンダースコア__で始まるメソッドをマジックメソッドと呼び、PHPにおいて重要な役割を果たします。 魔法の方法には次のようなものがあります:

  • __construct()、クラスコンストラクター
  • __destruct()、クラスのデストラクター
  • __call()、オブジェクト内のアクセスできないメソッドを呼び出すときに呼び出されます
  • __callStatic()、静的モードでアクセスできないメソッドを呼び出すときに呼び出されます
  • __get()、クラスのメンバー変数を取得するときに呼び出されます
  • __set()、クラスのメンバー変数を設定するときに呼び出されます
  • __isset()、アクセスできないプロパティに対して isset() または empty() が呼び出されたときに呼び出されます
  • __unset()、アクセスできないプロパティに対して unset() が呼び出されたときに呼び出されます。
  • __sleep()、serialize()を実行するとき、この関数が最初に呼び出されます
  • __wakeup()、unserialize()を実行するとき、この関数が最初に呼び出されます
  • __toString()、クラスが文字列として扱われる場合の応答メソッド
  • __invoke()、関数を呼び出してオブジェクトを呼び出すときの応答メソッド
  • __set_state()、この静的メソッドは、クラスをエクスポートするために var_export() を呼び出すときに呼び出されます。
  • __clone()、オブジェクトのコピーが完了すると呼び出されます

__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 つの定数はマジック定数と呼ばれます。

  • __LINE__、ファイル内の現在の行番号
  • __FILE__、ファイルのフルパスとファイル名
  • __DIR__、ファイルが配置されているディレクトリ
  • __FUNCTION__、関数名
  • __CLASS__、クラスの名前
  • __TRAIT__、トレイトの名前
  • __METHOD__、クラスのメソッド名
  • __NAMESPACE__、現在の名前空間の名前

これらのマジック定数は、現在の環境情報を取得したり、ログを記録したりするためによく使用されます。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。

興味があるかもしれない記事:

  • PHP マジック メソッドの使用手順
  • PHP マジック メソッド __get() および __set() の使用方法の詳細な説明
  • 構築された PHP マジック メソッドとマジック変数の詳細な紹介-inメソッドと組み込み変数の分析
  • PHP5のマジック定数とマジックメソッドに基づく詳細な説明
  • phpチュートリアルマジックメソッドの使用例(phpマジック関数)
  • ThinkPHPクエリにおけるマジックメソッドの簡単な説明
  • 概要PHP クラスのマジック メソッド (Magic Method) の説明 概要
  • PHP 5.3 の新しいマジック メソッド __invoke の概要

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