ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルのマジック メソッド __call()、__clone()、__set()、__get()

php_PHP チュートリアルのマジック メソッド __call()、__clone()、__set()、__get()

WBOY
WBOYオリジナル
2016-07-12 09:04:23940ブラウズ

php

のマジックメソッド__call()、__clone()、__set()、__get() __call($a,$v)、クラス内に存在しないメソッド、または非表示(protected、privateで変更)のメソッドがクラス外で呼び出された場合、__call(メソッド名, 配列パラメータ)が自動的に呼び出されます。次に、「メソッドは 2 つのパラメータを渡します。1 つ目は呼び出されたメソッドの名前で、2 つ目は配列に渡されるパラメータです」に変更されます。 __clone() メソッドは、クラスのオブジェクトが複製されるときにトリガーされます。 __set($key,$val) は、クラス外のクラスに存在しない属性、または非表示 (保護、プライベート変更) の属性を設定するときにこのメソッドをトリガーします。このとき、2 つのパラメーターが渡されます。最初のパラメーターは属性名です。 、2番目は属性値です。 __get($key) は、クラス外のクラスに存在しない属性、または非表示 (保護、プライベート変更) の属性を取得するときにこのメソッドをトリガーします。このとき、パラメーターが 1 つ渡されます。これは属性名です。例:
リーリー

$test1=新しいテスト();
$test3=$test1;//この時点では、$test3 と $test1 は同じオブジェクトです、つまり、両方とも同じオブジェクトを指します
$test2=clone $test1;//クローン作成後、$test1 と $test2 は 2 つの異なるオブジェクトになりますが、保存された値は同じです
$test1->abc(1,2,3);
$test1->a=3;
$test1->b;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1073355.html技術記事 php のマジック メソッド __call()、__clone()、__set()、__get() __call($a,$v) は、クラス外で呼び出された場合、クラス内に存在しないか、非表示になります (protected、private で変更) ) メソッドを使用すると、自動的に調整されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。