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 相关文章推荐
PHP 函数执行效率的小比较
Oct 17 PHP
浅析PHP中的UNICODE 编码与解码
Jun 29 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
php代码检查代理ip的有效性
Aug 19 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
yii框架使用分页的方法分析
Jul 25 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP 单引号与双引号的区别
2009/11/24 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
利用Python进行异常值分析实例代码
2017/12/07 Python
django实现用户登陆功能详解
2017/12/11 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
关于Python的一些学习总结
2018/05/25 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
留学自荐信
2013/10/10 职场文书
新闻编辑自荐信
2013/11/03 职场文书
住房公积金接收函
2014/01/09 职场文书
2014年环保局工作总结
2014/12/11 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电