php物件導向 OOP 把物件序列化

2021-09-30 06:40:34 字數 939 閱讀 7033

有時候需要把乙個物件在網路上傳輸,為了方便傳輸,可以把整個物件轉化為二進位制串,等到達另一端時,再還原為原來的物件,這個過程稱之為序列化, 就像我們現在想把一輛汽車通過輪船運到美國去,因為汽車的體積比較大,我們可以把汽車拆開成小的部件,然後我們把這些部件通過輪般運到美國去,到了美國再把這些部件組裝回汽車。

有兩種情況我們必須把物件序列化,第一種情況就是把乙個物件在網路中傳輸的時候要將物件序列化,第二種情況就是把物件寫入檔案或是資料庫的時候用到序列化。

序列化有兩個過程,乙個是序列化,就是把物件轉化為二進位制的字串,我們使用serialize()函式來序列化乙個物件,另乙個是反序列化,就是把物件轉化的二進位制字串再轉化為物件, 我們使用unserialize()函式來反序列化乙個物件.

php中serialize()函式的引數為物件名,返回值為乙個字串,serialize()返回的字串含義模糊,一般我們不會解析這個串來得到物件的資訊,我們只要把返回來的這個字串傳到網路另一端或是儲存到方件中即可。

php中unserialize()函式來反序列化物件,這個函式的引數即為serialize()函式的返回值,輸出當然是重新組織好的物件.

上例輸出結果:

o:6:"person":3:

我的名子叫:張三 性別:男 我的年齡是:20

在php5中有兩個魔術方法__sleep()方法和__wakeup()方法,在物件序列化的時候,會呼叫乙個__sleep()方法來完成一些睡前的事情;而在重新醒來,即由二進位制串重新組成乙個物件的時候,則會自動呼叫php的另乙個函式__wakeup(),做一些物件醒來就要做的動作。

__sleep()函式不接受任何引數, 但返回乙個陣列,其中包含需要序列化的屬性。末被包含的屬性將在序列化時被忽略,如果沒有__sleep()方法,php將儲存所有屬性。

上例輸出值為:

o:6:"person":2:

我的名子叫:張三 性別: 我的年齡是:40

oop物件導向

首先是定義 什麼是物件 物件就是屬性的無序集合,每個屬性存放乙個 原始值or物件or函式 既然是屬性的無序集合,那麼屬性的含義顧名思義,那麼屬性是什麼 屬性就是乙個個的鍵值對.也就是 屬性名 屬性 一分為二,首先是屬性名 什麼可以做屬性名,既然屬性的名字,所以我們一般是用字串來命名的,當然,如果自己...

OOP 物件導向

oop思想 接觸到任意乙個任務,首先想到的是這個人物的構成,是由模型構成的 幾個名詞 oo 物件導向 ooa 物件導向的分析 ood 物件導向的設計 ooi 物件導向的實現 oop 物件導向的程式設計 ooa ood ooi 物件導向的實現過程 類和物件的概念 類 抽象名詞,代表乙個集合,共性的事物...

物件導向 oop

物件導向的核心 類 物件 需要有意義的物件導向的 不是有了類就是物件導向 例項化的方法 設計層面 函式 程式運形,過程式一種稱謂 物件 物件是現實世界或者思維世界中的實體在計算機中的反映,它將資料以及這些資料上的操作封裝在一起 類 一類事物的統稱,物件是類具體化的產物,也就是例項化 不同的物件有什麼...