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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
谈谈新手如何学习PHP
Dec 14 PHP
PHP session有效期问题
Apr 26 PHP
php遍历目录viewDir函数
Dec 15 PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
Apr 24 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
Dec 08 PHP
php删除数组中重复元素的方法
Dec 22 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 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效率,提高php性能的一些方法
2011/03/24 PHP
基于php下载文件的详解
2013/06/02 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
ThinkPHP控制器详解
2015/07/27 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
jquery text()要注意啦
2009/10/30 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
教师自荐信
2013/12/10 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
专家推荐信模板
2014/05/09 职场文书
网站出售协议书范文
2014/10/10 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript
gateway网关接口请求的校验方式
2021/07/15 Java/Android