**
php中序列化和反序列化函式在快照中的使用
**1.序列化函式
string serialize(mixed $value)
2.反序列化函式
mixed unserialize ( string $str )
簡單例子:
$arr = array(
array('name'
=>
'張三','age'
=>
18),
array('name'
=>
'李四','age'
=>
21),
array('name'
=>
'王武','age'
=>
17));
dump(serialize($arr));
/**結果:
string(153) "a:3:i:1;a:2:i:2;a:2:}"
**/dump(unserialize(serialize($arr)));
/**結果:
array(3)
[1]=> array(2)
[2]=> array(2)
}**/
所謂快照就是把當時的資料資訊做乙個留存,如果以後發生變化就可以拿出當時的留存作為憑證。在商品限時優惠活動中會用到。
具體來說,針對同一件商品,使用者在商家搞活動時下單,就把商品的優惠資訊進行記錄,假如存在條件優惠活動時購買不可以退換,現在已經過了優惠活動的,現在下單的使用者就可以擁有退換服務,優惠活動期間下單的使用者就不存在退換服務,依據就是使用者下單時的快照留存。
實際應用:
/**
* 設定訂單快照
* @param string $params
* @return $this
*/public function setparams($params)
/**資料解析
*/$r['shop'] = unserialize($r['params']);
$r['shop_name'] = $r['shop']['titles'];
$r['shop_image_url'] = $r['shop']['image_url'];
這樣,即使商家刪除了商品資訊也不會受到影響。 php序列化和反序列化
把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 1.建立乙個 arr陣列用於儲存使用者基本資訊,並在瀏覽器中輸出檢視結果 arr array arr name 張三 arr age 22 arr 男 arr phone 12...
php序列化和反序列化
序列化與反序列化 把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 1.建立乙個 arr陣列用於儲存使用者基本資訊,並在瀏覽器中輸出檢視結果 arr array arr name 張三 arr age 22 arr 男 arr...
序列化和反序列化 C 序列化與反序列化。
序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...