天天看點

PHP面向對象之魔術方法複習

魔術方法複習

2014-9-2 10:08:00 notepad++ by jiancaigege 飛鴻影~

=========================

1、__construct()

構造方法

用于類執行個體化時自動運作的方法

常用于初始化成員屬性值等

2、__destruct()

析構函數

用于類銷毀時自動運作的方法

常用語銷毀資源、關閉資源等

3、__set(param,

value)

用于給對象中非公有的成員屬性設定值時自動調用的方法

例如:

4、__get($param)

用于擷取對象中非公有的成員屬性值時自動調用的方法

5、__isset()

用于測試對象中非公有屬性值時自動調用的方法

6、__unset()

用于銷毀對象中非公有屬性值時自動調用的方法

7、__tostring()

當試圖直接echo對象時自動調用的方法

示例:

8、__call()

當試圖調用對象中不存在的方法時自動調用的方法

9、__clone()

在克隆對象時,對象裡有子對象或資源時,此時需要加上這個方法,否則會複制不完整

當然,我們也可以在該方法中添加trigger_error('error',e_user_error);或者直接設定為private防止克隆

10、__sleep()

對象串行化(serialize)時,如果類中有子對象或資源被調用;

這時候我們需要使用該方法來進行送出未送出的資料,或類似的清理操作;

例如儲存資料、關閉一些資源等

示例:(串行化時儲存連接配接資料庫需要的資料)

11、__wakeup()

對象反串行化(unserialize)時,恢複串行化前的一些狀态,例如重建立立資料庫連接配接,或執行其它初始化操作

示例:(上例中,我們需要自動恢複資料庫連接配接)

12、__autoload(string $class_name)

用于自動加載需要的類檔案

注意:該方法用于類之外