物件導向中的常用魔術方法

2021-09-06 17:41:13 字數 887 閱讀 7316

__autoload($classname);這個魔術方法與其他魔術方法不同的是,它不是在類中使用的,其他都是在類內部使用,只要在頁面中用到乙個類,就會自動將這個類名傳給這個函式的引數。在開發中用它來自動載入類。

__sleep():是在物件序列化也叫序列化時,自動呼叫的方法,因為物件序列化的時候serialize($object),如果類裡不加這個魔術方法,會自動將類中的所有屬性全部序列化,如果只想讓某些屬性被序列化,就要用到這個方法,這個方法返回乙個由類的屬性組成的陣列。序列哪個屬性就將那個屬性放到陣列中。作用:將物件部分序列化。

function __sleep()序列化名字和年齡兩個屬性,序列化哪個屬性就在__sleep方法裡返回乙個包含該屬性的陣列。

$str  = serialize($object)//將物件序列化成二進位制的字串。

$newobject = unserialize($str);//將二進位制的字串轉成乙個新的物件,這個新物件擁有原來那個物件的屬性和方法。

__wakeup():在反序列化的時候,自動呼叫的方法,因為在物件反序列化的時候會誕生乙個新的物件,而每誕生乙個新的物件,一般都要將這個物件初始化(當然不是必須的,視情況而定),所以這個魔術方法的作用就是將新誕生的物件進行初始化。

__clone():在轉殖物件的時候自動呼叫的方法,這個方法中的$this指的是剛被轉殖出來的物件,這個魔術方法也是用來給新轉殖出的物件進行初始化的。$that指原來那個物件但不好使。

__call($fnname,args):當物件在外部呼叫類中不存在的方法時自動呼叫,處理一些不存在方法的錯誤呼叫,這個方法接受兩個引數,第乙個引數為訪問不存在的方法名,第二個引數為不存在的方法的引數陣列。

__tostring():直接輸出物件引用時自動呼叫,因為物件不能在類裡直接使用,用來快速獲取物件字串表示的最快捷方式。

物件導向中的常用魔術方法

autoload classname 這個魔術方法與其他魔術方法不同的是,它不是在類中使用的,其他都是在類內部使用,只要在頁面中用到乙個類,就會自動將這個類名傳給這個函式的引數。在開發中用它來自動載入類。sleep 是在物件序列化也叫序列化時,自動呼叫的方法,因為物件序列化的時候serialize ...

物件導向魔術方法

特別的方法 在特定的時機,完成自動呼叫的一些物件方法 construct 例項化過程中 初始化物件操作 destruct 物件被銷毀的過程中,釋放物件棧占用的額外資源 收尾性工作 clone 轉殖物件,重新初始化一下轉殖出來的新物件 tostring 物件轉換為字串 set get unset ca...

php物件導向中的魔術方法

在 php 中以兩個下劃線開頭的方法,construct destruct call callstatic get set isset unset sleep wakeup tostring set state,clone autoload 等,被稱為 魔術方法 magic methods 注意 這...