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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
随机广告显示(PHP函数)
Oct 09 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
PHP下载远程图片并保存到本地方法总结
Jan 22 PHP
PHP session会话操作技巧小结
Sep 27 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
php显示页码分页类的封装
Jun 08 PHP
php多文件打包下载的实例代码
Jul 12 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 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中的魔术方法总结和使用实例
2015/05/11 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP闭包函数详解
2016/02/13 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
PHP常用函数之格式化时间操作示例
2019/10/21 PHP
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
几行js代码实现自适应
2017/02/24 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
Python读写Excel文件方法介绍
2014/11/22 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
python中时间模块的基本使用教程
2019/05/14 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
大专生的学习自我评价
2013/12/04 职场文书
工作表现评语
2014/01/19 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
社保委托书怎么写
2014/08/02 职场文书
党支部四风整改方案
2014/10/25 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
中秋节慰问信
2015/02/15 职场文书