php中序列化和反序列化函数在快照中的使用

**
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:0;a:2:{s:4:"name";s:6:"张三";s:3:"age";i:18;}i:1;a:2:{s:4:"name";s:6:"李四";s:3:"age";i:21;}i:2;a:2:{s:4:"name";s:6:"王武";s:3:"age";i:17;}}"
**/
dump(unserialize(serialize($arr)));
/**
结果:
array(3) {
  [0] => array(2) {
    ["name"] => string(6) "张三"
    ["age"] => int(18)
  }
  [1] => array(2) {
    ["name"] => string(6) "李四"
    ["age"] => int(21)
  }
  [2] => array(2) {
    ["name"] => string(6) "王武"
    ["age"] => int(17)
  }
}
**/

所谓快照就是把当时的数据信息做一个留存,如果以后发生变化就可以拿出当时的留存作为凭证。在商品限时优惠活动中会用到。
具体来说,针对同一件商品,用户在商家搞活动时下单,就把商品的优惠信息进行记录,假如存在条件优惠活动时购买不可以退换,现在已经过了优惠活动的,现在下单的用户就可以拥有退换服务,优惠活动期间下单的用户就不存在退换服务,依据就是用户下单时的快照留存。

实际应用:

/**
 * 设置订单快照
 * @param string $params
 * @return $this
 */
public function setParams($params) {
    $this->params = is_array($params) ? $params : array();

    return $this;
}
/**
数据解析
*/
$r['shop'] = unserialize($r['params']);
$r['shop_name'] = $r['shop']['titles'];
$r['shop_image_url'] = $r['shop']['image_url'];

这样,即使商家删除了商品信息也不会受到影响。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值