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新手入门学习方法
May 08 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
php对数组排序代码分享
Feb 24 PHP
PHP中使用循环实现的金字塔图形
Nov 08 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 PHP
Swoole实现异步投递task任务案例详解
Apr 02 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读写文件的方法(生成HTML)
2006/11/27 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
学习Python列表的基础知识汇总
2020/03/10 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
世界上最大的二手相机店:KEN
2017/05/17 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
Java程序员综合测试题
2014/04/25 面试题
房地产项目策划书
2014/02/05 职场文书
篮球比赛口号
2014/06/10 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
档案管理员岗位职责
2015/02/12 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
毕业实习感受与体会
2015/05/26 职场文书
居住证明范文
2015/06/17 职场文书
初三英语教学反思
2016/02/15 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
python flappy bird小游戏分步实现流程
2022/02/15 Python