PHP OOP 对象的序列化 反序列化

基本介绍

  所谓的对象序列化是指:将一个对象转化成一个字符串,这个字符串包括 属性 属性名,属性值,属性类型,和该对象对应的类名。简单的说明就是把一个对象的书和数据类型转成字符串;

<?php
header("content-type:text/html;charset=utf-8");
class Cat {
    public $name;
    public $age;
    public $color;

    public function __construct($name,$age,$color)
    {
        $this->name = $name;
        $this->age = $age;
        $this->color=$color;
    }
}

$cat = new Cat("小花",12,"白色");
file_put_contents("D:cat.txt",serialize($cat));
echo "保存成功--------------".serialize($cat).'<br>';
echo "读取D:cat.txt 文件 file_get_contents<br>";
$cat_obj_str = file_get_contents("D:cat.txt");
echo "<br> 读取成功".$cat_obj_str;
echo '<h3>反序列化 unserialize</h3>';
$cat_obj = unserialize($cat_obj_str);
var_dump($cat_obj);

结果:

file_put_contents($filename,$contents);将文件保存;

file_get_contents($filename); 读取文件信息

序列化,反序列化细节;

魔术方法__sleep

<?php
header("content-type:text/html;charset=utf-8");
class Cat {

    public $name;
    public $age;
    public $sex;
    public $lover;
    public function __construct($name,$age,$sex,$lover)
    {
        $this->name = $name;
        $this->age = $age;
        $this->sex = $sex;
        $this->lover = $lover;
    }


    public function __sleep()
    {
        // 在这里决定哪些被序列化
        echo "<br>序列化调用";
        return array("name","age","lover");
    }
    public function __wakeup()
    {
        echo "<br> 反序列化调用";
    }
}

$cat = new Cat("小雪","12","女","猪");
$cat_str = serialize($cat);
echo $cat_str;
// 反序列化
$cat_obj = unserialize($cat_str);
var_dump($cat_obj);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值