0

0

讲解PHP面向对象序列化、反序列化的相关代码

jacklove

jacklove

发布时间:2018-06-08 14:09:35

|

1495人浏览过

|

来源于php中文网

原创

php面向对象序列化、反序列化的内容在php中很重要,本篇文章讲讲解其相关的代码内容。

序列化 (Serialization):将对象的状态信息转换为可以存储或传输的形式的过程。

警告:各种语言所采用的序列化机制往往不一样,不兼容。

1 序列化serialize()

string serialize ( mixed $value )

serialize() 返回字符串,此字符串包含了表示 value 的字节流,同时不丢失其类型和结构。

serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。

立即学习PHP免费学习笔记(深入)”;

当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。

2 反序列化unserialize()

mixed unserialize ( string $str )

想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。

当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

Perl 基础教程 chm
Perl 基础教程 chm

Perl 基础入门中文教程,chm格式,讲述PERL概述、简单变量、操作符、列表和数组变量、文件读写、模式匹配、控制结构、子程序、关联数组/哈希表、格式化输出、文件系统、引用、面向对象、包和模块等知识点。适合初学者阅读和了解Perl脚本语言。

下载

如果要想在另外一个文件中反序列化一个对象,必须要在反序列化之前定义这个对象的类。   

// 未定义对象的类时,如果反序列化,会得到下面的__PHP_Incomplete_Class对象,不含方法。

__PHP_Incomplete_Class Object
(
    [__PHP_Incomplete_Class_Name] => Person
    [name:Person:private] => jack
    [age:Person:private] => 18
    [sex:Person:private] => M
)
name = $name;
        $this->age = $age;
        $this->sex = $sex;
    } 
    function __sleep() {
        $arr = array('name', 'age');
        return $arr;
    }
    function __wakeup() {
        $this->sex = 'F';
        $this->age = 20;
    }
    function say() {
        echo 'My name is: ' . $this->name . ',My age is: ' . $this->age . ',My sex is: ' . $this->sex . PHP_EOL;
    }
}
$p = new Person('jack', 18, 'M');
$p->say(); // My name is: jack,My age is: 18,My sex is: M
$s = serialize($p); //得到(O:6:"Person":3:{s:12:"Personname";s:4:"jack";s:11:"Personage";i:18;s:11:"Personsex";s:1:"M";})字符串,有特殊字符
echo $s . PHP_EOL;
$o = unserialize($s); // 反序列化之前必须要定义这个对象的类
$o->say(); // My name is: jack,My age is: 20,My sex is: F

    本篇文章详解了HP面向对象序列化、反序列化的相关代码的内容,更多相关知识请关注php中文网。

相关推荐:

如何通过PHP方法判断是否是手机登录(代码)

如何通过php循环和递归实现无限级分类

在PHP中使用魔术方法__CLASS__来获取类名的相关操作

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 9.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 10.5万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号