ホームページ >バックエンド開発 >PHPチュートリアル >phpマジックメソッドの使い方の紹介

phpマジックメソッドの使い方の紹介

怪我咯
怪我咯オリジナル
2017-07-14 14:31:021310ブラウズ

オブジェクト指向プログラミングでは、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 不存在

4.set() は、存在しないプロパティに値を書き込もうとするときに呼び出されます。

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

5.call() このメソッドは、オブジェクトに存在しないメソッドを呼び出そうとしたときに呼び出されます。

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);

プログラムは次のように出力します:

呼び出したい getName メソッドは存在しません。パラメータは次のとおりです: Array

(
[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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。