1. 程式人生 > >PHP的魔術方法及異常

PHP的魔術方法及異常

 php的魔術方法,及每個魔術方法的作用

定義:所有以兩個下劃線開頭的類方法,被稱為"魔術方法"(Magic methods)。

1.__construct()
   例項化物件時被呼叫,
  當__construct和以類名為函式名的函式同時存在時, __construct將被呼叫,另一個不被呼叫。
2.__destruct() 
  當刪除一個物件或物件操作終止時被呼叫。
3.__call()
  物件呼叫某個方法,
  若方法存在,則直接呼叫;
  若不存在,則會去呼叫__call函式。
4.__get()
  讀取一個物件的屬性時,
  若屬性存在,則直接返回屬性值;
  若不存在,則會呼叫__get函式。
5.__set()
  設定一個物件的屬性時,
  若屬性存在,則直接賦值;
  若不存在,則會呼叫__set函式。
6.__toString()
  列印一個物件的時被呼叫。如echo $obj;或print $obj;
7.__clone()
  克隆物件時被呼叫。如:$t=new Test();$t1=clone $t;
8.__sleep()
  serialize之前被呼叫。若物件比較大,想刪減一點東東再序    列化,可考慮一下此函式。
9.__wakeup()
  unserialize時被呼叫,做些物件的初始化工作。
10.__isset()
  檢測一個物件的屬性是否存在時被呼叫。如:isset($c->name)。
11.__unset()
    刪除某個變數
  unset一個物件的屬性時被呼叫。如:unset($c->name)。
12.__set_state()
  呼叫var_export時,被呼叫。用__set_state的返回值做為var_export的返回值。
13.__autoload()
  例項化一個物件時,如果對應的類不存在,則該方法被呼叫。


14.__invoke()
    當嘗試以呼叫函式的方式去呼叫物件,沒有定義則不存在,