ホームページ  >  記事  >  バックエンド開発  >  php マジックメソッドの使用例

php マジックメソッドの使用例

怪我咯
怪我咯オリジナル
2017-07-05 09:39:551212ブラウズ

PHP の Magic Methods と呼ばれるいくつかの関数がここで紹介されています: 実際、一般的なアプリケーションでは、私たちは皆それらを使用する必要があります。 !

PHP5.0 以降、php はオブジェクト指向になり、より多くのメソッドが追加され、php はより強力になりました。 !
ここでは、PHP のマジック メソッドと呼ばれるいくつかの関数を紹介します。実際、一般的なアプリケーションでは、誰もがこれらを使用する必要があります。 !

1.construct() オブジェクトをインスタンス化するとき、最初にオブジェクトのこのメソッドが呼び出されます。
Java コード
class Test { functionconstruct() { echo "前"; } } $t = new Test();
class Test { function construction() { echo "前" } } $t = new Test( );
出力は次のとおりです:
start
同じクラス名の php5 オブジェクト モデルと関数がクラスの コンストラクターであることがわかっているので、コンストラクターとconstruct() メソッドを同時に定義すると、 , php5 は、代わりにデフォルトでコンストラクターを呼び出します。construct() 関数が呼び出されるので、construct() はクラスのデフォルトのコンストラクターとして機能します
2.destruct() このメソッドは、オブジェクトが削除されたとき、またはオブジェクトが削除されたときに呼び出されます。操作が終了します。 Java コード
class Test { function destruct() { echo "end"; } } $t = new Test(); は end を出力します
class Test { function destruct() { echo "end"; } new Test(); は end を出力します
オブジェクト操作の最後にリソースを解放するなどの操作を実行できます

存在しないプロパティを読み取ろうとすると 3.get() が呼び出されます。
オブジェクトに存在しないプロパティを読み取ろうとすると、PHP は
エラー メッセージを表示します。クラスに get メソッドを追加すると、この関数を使用して Java のリフレクションと同様のさまざまな操作を実装できます。 Java コード
class Test { public function get($key) { echo $key . " が存在しません" } } $t = new Test(); echo $t->name が出力されます。
class Test { public function get($key) { echo $key . "存在しません"; } } $t = new Test(); echo $t->name; が出力されます: name は存在しません

4 .set() は、存在しないプロパティに値を書き込もうとするときに呼び出されます。 Java コード
class Test { public function set($key,$value) { echo 'pair'.$key . "value".$value; } $t = new Test(); = "aninggo"; は次のように出力されます: value-added aninggo to name
class Test { public function set($key,$value) { echo 'pair'.$key } } $t = new Test(); $t->name = "aninggo"; 出力: aninggo を name に追加します


5.call() オブジェクトに存在しないメソッドを呼び出そうとする場合は、このメソッドを呼び出します。 Java コード
class Test { public function call($Key, $Args) { echo "呼び出したい {$Key} メソッドが存在しません。渡したパラメータは次のとおりです: " . ); } } $t = new Test(); $t->getName(aning,go);
class Test { public function call($Key, $Args) { echo "対象の {$Key} メソッドcall は存在しません。渡すパラメータは次のとおりです: " .print_r($Args, true); } } $t = new Test(); $t->getName(aning,go);
プログラムは次のように出力します。
Java コード
呼び出そうとしている 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(); を実行すると、オブジェクトが複製されると、$t->toString(); が呼び出されて出力されます Print Test

7.clone() オブジェクトが複製されると、それが呼び出されます
class Test { public function clone() { echo "コピーされました わかりました! "; } }$t = new Test(); $t1 = clone $t;プログラム出力: クローンされました!

以上がphp マジックメソッドの使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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