php 序列化对象
習慣性借用手冊里面的介紹:
所有php里面的值都可以使用函數serialize()來返回一個包含字節流的字符串來表示。unserialize()函數能夠重新把字符串變回php原來的值。序列化一個對象將會保存對象的所有變量,但是不會保存對象的方法,只會保存類的名字。
唔,不懂沒事,我們直接看代碼:
注釋有解釋=。=。。。
結果如下:
ok,那么我們現在明白了我們的序列化和反序列化了吧?
手冊上手“返回一個包含字節流的字符串來表示”,那我們序列化后是不是變成了字符串了?然后我們反序列化后就又回到以前的樣子了。
序列化:serialize()
反序列化:unserialize()
注意php手冊還說過:“為了能夠unserialize()一個對象,這個對象的類必須已經定義過。如果序列化類A的一個對象,將會返回一個跟類A相關,而且包含了對象所有變量值的字符串。 如果要想在另外一個文件中解序列化一個對象,這個對象的類必須在解序列化之前定義”
意思就是如果反序列化一個對象,那么這個對象必須在這個php文件里面,或者說已經引入到了這個文件,而且要在反序列化之前定義。
總結
- 上一篇: php之clone 复制对象以及__cl
- 下一篇: php之生成器