PHP序列化操作方法分析


Posted in PHP onSeptember 28, 2016

本文实例讲述了PHP序列化操作方法。分享给大家供大家参考,具体如下:

序列化就是将变量数据转换为字符串(跟类型转换机制不同),一般应用于存储数据(文件),然后在别的情形下恢复(反序列化)

序列化:

$val = serialize($var);
file_put_contents('./*.txt',$val);

反序列化:

$val = file_get_contents('./*.txt');
$var = unserialize($val);

当一个对象进行序列化操作时,会自动调用类中的__sleep();

当反序列化一个对象的时候,会自动调用对应类的__wakeup(),反序列操作中,必须具备了对应的类的声明。

__sleep()可以进行一些数据(资源)的清理关闭操作,并返回一个数组,该数组存储一些需要进行序列化的对象的属性,即可以挑选属性进行序列化。

class bee{
 public $a;
 protected $b;
 private $c;
 public function __sleep(){
  return array('a','b');
  }
}

__wakeup()在进行反序列话操作的时候进行某些有用的‘数据恢复工作',比如连接数据库

public function __wakeup(){
 $this->func();
}

__tostring()

当把一个对象当作一个字符串来看待处理的时候,会自动调用该方法。通过该方法可以返回合适的字符串,如果没该定义该方法就会出错。

class bee{
 public function __tostring(){
  echo 'string';
 }
}
$obj = new bee();
//对象不能直接当字符串使用
echo $obj;

__invoke()

当对象当作一个方法使用的时候,会自动调用该方法

class bee{
 public function __invoke(){
  echo 'invoke';
 }
}
$obj = new bee();
//对象不能直接当字符串使用
echo $obj();

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
防止MySQL注入或HTML表单滥用的PHP程序
Jan 21 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
小谈php正则提取图片地址
Mar 27 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
php中JSON的使用方法
Apr 30 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
禁止直接访问php文件代码分享
May 05 PHP
PHP类的特性实例分析
Sep 28 #PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 #PHP
PHP会话操作之cookie用法分析
Sep 28 #PHP
PHP session会话操作技巧小结
Sep 27 #PHP
PHP简单预防sql注入的方法
Sep 27 #PHP
PHP数据对象PDO操作技巧小结
Sep 27 #PHP
PHP基于GD库的图像处理方法小结
Sep 27 #PHP
You might like
PHP学习笔记之二
2011/01/17 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
js分页工具实例
2015/01/28 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
python读取图片并修改格式与大小的方法
2018/07/24 Python
深入理解Django-Signals信号量
2019/02/19 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
英语国培研修感言
2014/02/13 职场文书
汉语言文学职业规划
2014/02/14 职场文书
计算机专业职业规划
2014/02/28 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
教书育人演讲稿
2014/09/11 职场文书
2014年学生工作总结
2014/11/20 职场文书
刘公岛导游词
2015/02/05 职场文书
2015年团支部工作总结
2015/04/03 职场文书
罗马假日观后感
2015/06/08 职场文书
公证书
2019/04/17 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL