首頁  >  文章  >  後端開發  >  php 魔術方法的使用範例

php 魔術方法的使用範例

怪我咯
怪我咯原創
2017-07-05 09:39:551212瀏覽

一些在PHP叫魔術方法的函數,在這裡介紹一下:其實在一般的應用中,我們都需要用到他們! !

PHP5.0後,php物件導向提成更多方法,使得php更加的強大! !
一些在PHP叫魔術方法的函數,在這裡介紹一下:其實在一般的應用中,我們都需要用到他們! !

1.construct() 當實例化一個物件的時候,這個物件的這個方法首先被呼叫。
Java程式碼
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() 當刪除一個物件或物件操作終止的時候,呼叫該方法。
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(); echo $t->name; 就會輸出: 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 '對'.$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() 當試圖當呼叫一個物件並不存在的方法時,呼叫該方法。
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} 方法不存在。 #程式將會輸出:
Java程式碼
您要呼叫的getName 方法不存在。參數是:Array
(
[0] => aning
[1] => 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();從而輸出
打印Test

7.clone() 當物件被複製時,被呼叫class Test { public function clone() { echo "我複製了!"; } }$t = new Test(); $t1 = clone $t;程式輸出:我被克隆了!

以上是php 魔術方法的使用範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn