问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php 什么是序列化

发布网友 发布时间:2022-04-06 02:42

我来回答

4个回答

热心网友 时间:2022-04-06 04:12

序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。

PHP中的序列化和反序列化分别通过函数serialize()和unserialize()即可实现。serialize()的参数可以是resource类型外的所有变量类型,最常见的是用来序列化对象,unseialize()将serialize的返回结果作为参数,进行反序列化,得到原对象。

热心网友 时间:2022-04-06 05:30

string serialize ( mixed value )

serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。

这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。

当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

注: 在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4 打破了此*,可以同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。

例子 1. serialize() 示例

<?php
// $session_data 是包含了当前用户 session 信息的*数组。
// 我们使用 serialize() 在请求结束之前将其存储到数据库中。

$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, &$sqldata)) {
/* 出错 */
}
}
?>

热心网友 时间:2022-04-06 07:04

序列化就是把php的变量(一般是数组,可以有多层)内容转化成字符串,这个字符串是经过格式化的,再次用到这个内容的时候,只要把字符串整个读进来,再反序列化就得到原先变量的内容了。

序列化/反序列化一般用于缓存。

热心网友 时间:2022-04-06 08:56

方便数据的存储和传输,比如你要把数组存到数据库
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
会声会影如何裁剪视频画面范围 怎么正确喝酒的方法 真正好的饮用方式 日本清酒獭祭正确喝法 深圳有几家酒店可以真正意义上说是五星级? 深圳富苑皇冠假日套房式酒店酒店周边 深圳富苑皇冠假日套房酒店酒店简介 深圳富苑皇冠假日套房式酒店酒店介绍 金福人生多倍保重疾险怎么样?值不值得买? wpsword文档怎么删除空白页面 wPS删除空白页方法wps怎么删除多余空白页最有效方法 如何攻破PHP的垃圾回收和反序列化机制 C#解析json时,总出现反序列化失败是什么原因解决方案 php序列化问题 是php文件里的错误 php如何循环反序列化? 到底什么是PHP序列化? 服务器发送的对象客户端读取反序列化失败? 反序列化失败,xml中有特殊字符,这种情况怎么处理 php数组反序列化。下面这段为什么失败 &lt;?php $str = &lt;&lt;&lt;E fwejfo 策划 fewf fewf ewfewf *%&5 E; $arr = a php 面向对象unserialize反序列化失败怎么解决 php 经过uft-8处理方式之后,反序列化仍然失败 PHP反序列化失败:unserialize($a);$a为数据库中提取的字段值,这个值直接粘贴加上单引放括号里面能成功。 php unserialize()不能反序列化时怎么做才能不提示错误 使用php的SESSION直接保存对象序列化,但反序列化时出错 php数组反序列化失败,求解!!! 网站从建设到维护需要学习哪些知识? 网站维护需要学习什么? php文件下载并且显示进度条 php判断文件上传进度 thinkphp怎么实现进度条控制 此处php如何反序列化 c#反序列化失败 php序列化的为什么__sleep睡眠后,为什么反序列还是全部打出来了 phpstorm中文版怎么上传ftp 如何使用php中ftp函数上传文件以及解决上传文件失败的方法 怎么通过PHP来支持FTP和HTTP上传 怎么用PHP实现对FTP空间上传文件? 什么是ftp文件,怎么将php网站文件上传到服务器 如何用php语言调用ftp_put函数上传文件? 关于利用PHP FTP上传功能问题 用php向ftp上传文件 php ftp文件上传函数(基础版) php连接ftp下载或上传文件 PHP如何编写FTP上传文件 前后台代码 php+mysql怎么样用FTP来上传网站文件? php ftp 上传问题 用PHP怎样实现把文件从一台服务器,移动到另一台FTP服务器呢? php源码如何上传到主机? php代码实现ftp_put上传问题 php怎么实现递归ftp服务器上的文件内容