オブジェクト指向プログラミングでは、PHP はプログラミングに非常に便利な一連の マジック メソッドを提供します。 PHP のマジック メソッドは通常 (2 つのアンダースコア) で始まり、明示的な呼び出しは必要ありませんが、特定の条件によってトリガーされます。この記事では、PHP で使用できるマジック メソッドを簡単にまとめます。
1.construct() オブジェクトをインスタンス化するとき、オブジェクトのこのメソッドが最初に呼び出されます。
class Test { function construct() { echo "before"; } } $t = new Test(); class Test { function construct() { echo "before"; } } $t = new Test();出力は次のとおりです:
start
同じクラス名の php5 オブジェクト モデルと関数が
クラスのコンストラクター であることがわかっているため、コンストラクターとconstruct() メソッドを同時に、php5 はデフォルトでコンストラクターを呼び出します。construct() 関数は呼び出されないため、construct() はクラスのデフォルトのコンストラクターとして機能します
2.destruct() このメソッドは、オブジェクトが削除されたとき、またはオブジェクトの操作が終了します。
class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end class Test { function destruct() { echo "end"; } } $t = new Test();将会输出end
3.get() は、存在しないプロパティを読み取ろうとしたときに呼び出されます。
オブジェクトに存在しないプロパティを読み取ろうとすると、PHP は
エラー メッセージ
を表示します。クラスに get メソッドを追加すると、この関数を使用して Java のリフレクションと同様のさまざまな操作を実装できます。
class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在 class Test { public function get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 就会输出:name 不存在
class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo class Test { public function set($key,$value) { echo '对'.$key . "附值".$value; } } $t = new Test(); $t->name = "aninggo"; 就会输出:对 name 附值 aninggo
class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go); class Test { public function call($Key, $Args) { echo "您要调用的 {$Key} 方法不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning,go);
(
[0] => aning
[1] => go
)
呼び出したい getName メソッドが存在しません。パラメータは次のとおりです: Array
(
[0] => aning
[1] => go
)
6.toString() はオブジェクトを印刷するときに呼び出されます
このメソッドは Java の toString メソッドに似ています。オブジェクトを直接印刷するときは、この関数を呼び出します
class Test { public function toString() {
return
"Print Test" } } $t = new Test(); echo $t; を実行します。オブジェクトが複製されると、$t->toString(); が呼び出されて出力されます Print Test
7.clone() オブジェクトが複製されると、
class Test { public function clone() { echo "コピーされました! "; } }$t = new Test(); $t1 = clone $t;プログラム出力: クローンされました!
以上がphpマジックメソッドの使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。