PHP串行化与反串行化实例分析
发布时间 - 2026-01-10 22:08:19 点击率:次本文实例讲述了PHP串行化与反串行化。分享给大家供大家参考,具体如下:

对象也是一种在内存中存储的数据类型,他的寿命通常随着生成该对象的程序的终止而终止。有时候可能需要把对象的状态保存下来,需要时再将其回复。串行化是把每个对象转化为二进制字符串。
<?php
class Person {
var $name;
var $sex;
var $age;
function __construct($name = "", $sex = "男", $age = 22) {
$this->name = $name;
$this->sex = $sex;
$this->age = $age;
}
function say() {
echo $this->name . "在说话<br/>";
}
function run() {
echo "在走路·<br/>";
}
//串行化的时候自动调用,成员$sex被忽略,只串行$name,$age
function __sleep() {
$arr = array("name","age");
return $arr;
}
//反串行化时自动调用
function __wakeup() {
$this->age = 33;
}
}
class Student extends Person {
var $school;
function __construct($name = "", $sex = "男", $age = 22,$school="") {
parent::__construct($name,$sex,$age);
$this->school = $school;
}
function study() {
echo $this->name."正在".$this->school."学习<br/>";
}
}
class Teacher extends Student {
var $wage;
function teaching() {
echo $this->name."正在".$this->school."教学,每月工资为".$this->wage."<br/>";
}
//如果调用了不存在的方法,将会自动调用__call(),不会报错
function __call($functionName,$args) {
echo "函数名:".$functionName;
print_r($args);
echo "<br/>";
}
}
$teacher1 = new Teacher("kaifu","男",22);
$teacher1->school = "edu";
$teacher1->wage = 4000;
$teacher1->say();
$teacher1->study();
$teacher1->teaching();
$teacher1->hello(1,2,3);
?>
<?php
require_once 'Person.php';
$teacher = new Teacher("tom","男",22);
$teacher_str = serialize($teacher);
file_put_contents("file.txt", $teacher_str);
//反串行化
$objStr = file_get_contents("file.txt");
$t = unserialize($objStr);
echo $t->age;
?>
串行化 file.txt :
O:7:"Teacher":2:{s:4:"name";s:3:"tom";s:3:"age";i:22;}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
# PHP
# 串行化
# 反串行化
# PHP中串行化用法示例
# 详解PHP对象的串行化与反串行化
# php面向对象全攻略 (十六) 对象的串行化
# PHP中的串行化变量和序列化对象
# PHP面向对象程序设计方法实例详解
# PHP面向对象继承用法详解(优化与减少代码重复)
# PHP面向对象程序设计高级特性详解(接口
# 继承
# 抽象类
# 析构
# 克隆等)
# PHP面向对象程序设计之命名空间与自动加载类详解
# PHP面向对象程序设计之对象生成方法详解
# PHP面向对象程序设计组合模式与装饰模式详解
# PHP入门教程之面向对象的特性分析(继承
# 多态
# 接口
# 抽象方法等)
# 程序设计
# 操作技巧
# 相关内容
# 将会
# 将其
# 感兴趣
# 给大家
# 不存在
# 报错
# 转化为
# 更多关于
# 所述
# 面向对象
# 化与
# 时再
# 运算符
# 编程技巧
# 讲述了
# sex
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Laravel如何使用模型观察者?(Observer代码示例)
如何在Tomcat中配置并部署网站项目?
怎样使用JSON进行数据交换_它有什么限制
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel如何创建自定义Facades?(详细步骤)
如何在万网利用已有域名快速建站?
,怎么在广州志愿者网站注册?
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Laravel如何创建自定义中间件?(Middleware代码示例)
网站制作价目表怎么做,珍爱网婚介费用多少?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
再谈Python中的字符串与字符编码(推荐)
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何确保西部建站助手FTP传输的安全性?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
简单实现Android文件上传
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
利用JavaScript实现拖拽改变元素大小
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
Laravel如何使用Blade组件和插槽?(Component代码示例)
高端企业智能建站程序:SEO优化与响应式模板定制开发
JS经典正则表达式笔试题汇总
如何在七牛云存储上搭建网站并设置自定义域名?
新三国志曹操传主线渭水交兵攻略
android nfc常用标签读取总结
JavaScript常见的五种数组去重的方式
如何用y主机助手快速搭建网站?

