PHPマジック関数の予備探索(1)_PHPチュートリアル

WBOY
リリース: 2016-07-15 13:24:36
オリジナル
751 人が閲覧しました

Php5.0 は、リリース以来、多くのオブジェクト指向機能、特にコーディングを簡素化し、システムをより適切に設計できるようにする多くの使いやすいマジック メソッドを提供してきました。今日はphp5.0が提供するマジックメソッドについて学びます。

1.__construct() オブジェクトをインスタンス化するとき、オブジェクトのこのメソッドが最初に呼び出されます。

class Test {  function __construct()  {   echo "before";  } } $t = new Test();
ログイン後にコピー

出力は次のとおりです:

start
同じクラス名の php5 オブジェクト モデルと関数がクラスのコンストラクターであることがわかっているため、両方のコンストラクターを定義するとその場合、php5 は __construct() 関数を呼び出す代わりにデフォルトでコンストラクターを呼び出すため、オブジェクトが呼び出されたときに __construct() がクラスのデフォルトのコンストラクターとして機能します

2.__destruct()が削除されるか、オブジェクト操作によってこのメソッドが終了します。

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 不存在
ログイン後にコピー

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

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);
ログイン後にコピー

プログラムは次のように出力します:
呼び出したい getName メソッドは存在しません。パラメータは次のとおりです: Array
(
[0] => aning
[1] => go
)

6.__toString() はオブジェクトを印刷するときに呼び出されます

このメソッドは Java の toString メソッドに似ています。オブジェクトを直接印刷するときは、この関数を呼び出します

class Test {  public function __toString()  {   return "打印 Test";  } } $t = new Test(); echo $t; 
ログイン後にコピー

echo $t; を実行すると、$t->__toString() が呼び出されて出力されます
Print Test

7.__clone () はオブジェクトが複製されるときに呼び出されます

class Test {  public function __clone()  {   echo "我被复制了!";  } }$t = new Test(); $t1 = clone $t;程序输出:我被克隆了!
ログイン後にコピー

1

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446751.html技術記事 Php5.0 はリリース以来、多くのオブジェクト指向機能を提供してきました。特に、コーディングを簡素化し、改善できるようにする多くの使いやすいマジック メソッドを提供してきました...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!