PHP 把对象串行化serialize()方法

串行化有两个过程,一个是串行化,就是把对象转化为二进制的字符串,我们使用serialize()函数来串行化一个对象,另一个是反串行化,就是把对象转化的二进制字符串再转化为对象, 我们使用unserialize()函数来反串行化一个对象。

PHP中serialize()函数的参数为对象名,返回值为一个字符串,Serialize()返回的字符串含义模糊,一般我们不会解析这个串来得到对象的信息,我们只要把返回来的这个字符串传到网络另一端或是保存到文件中即可。

PHP中unserialize()函数来反串行化对象,这个函数的参数即为serialize()函数的返回值,输出当然是重新组织好的对象。


<?
    class Person
    {
        //下面是人的成员属性
        var $name;  //人的名子
        var $sex;   //人的性别
        var $age;   //人的年龄

        //定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值
        function __construct($name = "", $sex = "", $age = "") {
            $this->name = $name;
            $this->sex = $sex;
            $this->age = $age;
        }

        //这个人可以说话的方法, 说出自己的属性
        function say() {
            echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" .                 $this->age . "<br>";
        }
    }

    $p1 = new Person("张三", "男", 20);
    $p1_string = serialize($p1);    //把一个对象串行化,返一个字符串
    echo $p1_string . "<br>";     //串行化的字符串我们通常不去解析
    $p2 = unserialize($p1_string);  //把一个串行化的字符串反串行化形成对象$p2
    $p2->say();
?>

文章来自 www.96net.com.cn

posted @   学无边涯  阅读(474)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2020-10-26 Less 数学函数用法
2020-10-26 Less 列表函数用法
2020-10-26 Less 字符串函数用法
2020-10-26 Less 注释和导入规则用法
2020-10-26 Less 映射(Maps)和 作用域(Scope)用法
2020-10-26 Less 命名空间和访问符用法
2020-10-26 Less 转义的用法
点击右上角即可分享
微信分享提示