### PHP5中魔術方法函數有哪幾個,并舉例說明各自的用法。
#### **魔術方法:**
__construct() :實例化對象時被調用;
__destuct():當刪除一個對象或者對象操作終止是被執行;
__call():調用對象不存在方法時被調用;
__get():調用對象不存在的屬性時被調用;
__set():設置對象不存在的屬性時被調用;
__toString():打印一個對象時被調用,比如echo $obj,print($obj);
__clone():克隆對象時被調用,比如$t = new Test();$tt = clone $t;
__sleep():serialize之前被調用,若對象比較大,想做一些刪除在序列化,可以考慮使用該方法;
__wakeup():unserialize之前被調用,做些對象的初始化;
__isset():檢測對象是否存在屬性的時候被調用,如 isset($c->name);
__unset():unset一個對象屬性時被調用,如:unset($c->name);
__set_state():調用var_export時被調用,用__set_state的返回值作為 var_export的返回值;
__autoload():實例化一個對象時,如果對應的類不存在,在該方法被調用。
#### **魔術常量:**
__LINE__:返回當前行號;
__FILE__:返回文件的完整路徑和文件名,如果用在包含文件里面,則返回包含文件名,自 php4.0.2開始,__FILE__總是包含一個絕對路徑,而在此前的版本有時候會包含一個相對路徑
__FUNCTION__:返回函數名稱(自php4.3.0新加的)。自php5起本常量返回該函數被定義時的名稱,區分大小寫,在php4中該值總是小寫;
__CLASS__:返回類的名稱,自php4.3.0新加的,自php5起本常量返回該類被定義時的名稱,區分大小寫,在php4中該值總是小寫的;
__METHOD__:返回類的方法名;php5新加的。