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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
让你同时上传 1000 个文件 (二)
Oct 09 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
PHP下载远程文件到本地存储的方法
Mar 24 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
详解PHP swoole process的使用方法
Aug 26 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
PHP JWT初识及其简单示例
Oct 10 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 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
php eval函数用法总结
2012/10/31 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
javascript 关闭IE6、IE7
2009/06/01 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
在Python中使用Mako模版库的简单教程
2015/04/08 Python
python线程中同步锁详解
2018/04/27 Python
详解flask表单提交的两种方式
2018/07/21 Python
Python pymongo模块常用操作分析
2018/09/01 Python
python实现石头剪刀布小游戏
2021/01/20 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
python实现动态创建类的方法分析
2019/06/25 Python
python验证码图片处理(二值化)
2019/11/01 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
Python安装Bs4的多种方法
2020/11/28 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
大三学生入党思想汇报
2014/01/02 职场文书
交通安全教育制度
2014/02/02 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
开业典礼主持词
2014/03/21 职场文书
给市场的环保建议书
2014/05/14 职场文书
设计大赛策划方案
2014/06/13 职场文书