序列化就是將物件轉換為容易傳輸的格式的過程,一般情況下轉化為流文件,放入記憶體或IO文件中。
例如,可以序列化一個對象,然後使用HTTP 透過Internet 在客戶端和伺服器之間傳輸該對象,或和其它應用程式共享使用。 反之,反序列化根據流重新建構物件。
PHP序列化:(推薦學習:PHP程式設計從入門到精通)
string serialize ( mixed $value )
序列化是將變數或物件轉換成字符串的過程。
在序列化時,系統會先呼叫__sleep()魔術方法,然後在裡邊對資料進行篩選,就像要出門挑選要帶的衣服一樣,預設是一個物件的全部屬性,然後再呼叫serialize()函數就像這樣:
<?php class Animal{ public $name; public $age; public $height; function __construct($name,$age,$heigh){ $this->name=$name; $this->age=$age; $this->height=$heigh; } function __sleep(){ $this->name="小白猫"; return ['name','age',]; } function __wakeup(){ } } $cat=new Animal("小花猫",5,20); var_dump(serialize($cat)); ?>
在上邊的範例最後輸出序列化內容是這樣:
序列化的過程與回呼函數的關係:回呼函數概念是一個函數的參數是另一個函數的回傳值,而在序列化時,serialize()函數的參數就是__sleep()函數的回傳值,所以序列化的過程就是一次回呼函數的執行過程。
以上是php為什麼要序列化的詳細內容。更多資訊請關注PHP中文網其他相關文章!