ホームページ > php教程 > php手册 > phpマジックメソッドの使用手順

phpマジックメソッドの使用手順

WBOY
リリース: 2016-06-13 12:20:59
オリジナル
1171 人が閲覧しました

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

1.__construct() オブジェクトをインスタンス化するとき、オブジェクトのこのメソッドが最初に呼び出されます。
Java コード
class Test { function __construct() { echo "前" } } $t = new Test();
class Test { function __construct() { echo "前";
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"; } } $t = new Test(); は end を出力します
オブジェクト操作の最後にリソースを解放するなどの操作を実行できます

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

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


5.__call() に値が追加されます。存在しないオブジェクトのメソッドを呼び出すときに呼び出されます。 Java コード
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) );
プログラムは次のように出力します:
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(); echo $t; echo $t; が実行されると、$t->toString(); が呼び出され、

7 が出力されます。 __clone() はオブジェクトのクローン作成時に呼び出されます。

class Test { public function __clone() { echo "コピーされました!" } }$t = new Test(); $t;プログラム出力: クローンが作成されました!

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート