首页 > 语言 > 关键词  > php最新资讯  > 正文

PHP中的串行化变量和序列化对象

2008-10-29 10:44 · 稿源:12it.net

串行化大概就是把一些变量转化成为字符串的字节流的形式,这样比较容易传输、存储。当然,关是传输存储没有什么,关键是变成串的形式以后还能够转化回来,而且能够保持原来数据的结构。

在PHP中有多串行化处理的函数:serialize(),该函数把任何变量值(除了资源变量)转化为字符串的形式,可以把字符串保存到文件里,或者注册为Session,乃至于使用curl来模拟GET/POST来传输变量,达到RPC的效果。

如果要将串行化的变量转化成PHP原始的变量值,那么可以使用unserialize()函数。

一、变量串行化

我们举简单的例子来说明串行化,以及它的存储格式。

整型:

以下为引用的内容:
 $var = 23;
  echo serialize($var);

输出:

  i:23;

浮点型:

以下为引用的内容:

  $var = 1.23;

echo serialize($var);

输出:

  d:1.229999999999999982236431605997495353221893310546875;

字符串:

以下为引用的内容:
  $var = "This is a string";
  echo serialize($var);
  $var = "我是变量";
  echo serialize($var);


输出:

  s:16:"This is a string";
  s:8:"我是变量";

布尔型:

以下为引用的内容:
 $var = true;
  echo serialize($var);
  $var = false;
  echo serialize($var);

输出:

  b:1;
  b:0;

上面这些基本类型串行化之后的情况很清楚,串行化之后的存储格式是:

变量类型:[变量长度:]变量值;

就是第一位字符代表变量类型,第二个:代表分割,变量长度是可选的,就是在字符串类型里有,其他类型没有,最后一个就是变量值,每个串行化的值以";"作为结束。

比如我们整型数字23串行化之后就是:i:23,那么它没有长度,只有类型和变量值,i代表integer,通过冒号分割,后面保存的是整型值23,包括浮点型(双字节型)也是一样。布尔型的话,类型是b(boolean),如果是true的话,那么串行化的值是1,如果是false那么值就是0。字

符串值话中间会多一个保存的值得,保存字符串的长度值,比如字符串"This is a string",那么生成的串行化的值是 s:16:"This is a string"; s是string,代表类型,中间的16就是该字符串的长度,如果是中文的话,那么每个中文是两个字符来保存的,比如字符串 "我是变量",生成的串行化值是:s:8:"我是变量"; 就是8个字符的长度。

下面我们重点来讲一下数组变量串行化。

数组变量:

以下为引用的内容:
$var = array("abc", "def", "xyz", "123");
echo serialize($var);

输出:

a:4:{i:0;s:3:"abc";i:1;s:3:"def";i:2;s:3:"xyz";i:3;s:3:"123";}

就是把我的数组 $var 串行化得到的字符串值,我们的$var数组包括4个字符串元素,分别是"abc", "def", "xyz", "123",我们来分析一下串行化后的数据,为了简便起见,我们把串行化的数据列成数组的样式:

以下为引用的内容:
a:4:
{
i:0;s:3:"abc";
i:1;s:3:"def";
i:2;s:3:"xyz";
i:3;s:3:"123";
}

这样排列就比较清晰了,看开始的字符串:a:4:{...} 首先第一个字符a保存的是变量类型是array(数组)类型,第二个 4 保存的是数组元素的个数,一共有4个,然后在{}之间数组元素的内容。比如第一个数组元素:i:0;s:3:"abc"; i代表是当前数组元素的索引值类型是整型,并且值是 0,元素值的类型是s(字符串的),个数是 3 个,具体值是"abc",分号结束,下面的数组元素依次类推。

我们再看看使用字符串做为元素索引会如何:

以下为引用的内容:
$var = array("index1"=>"abc", "index2"=>"def", "index3"=>"xyz", "index4"=>"123");
echo serialize($var);

输出:

a:4:{s:6:"index1";s:3:"abc";s:6:"index2";s:3:"def";s:6:"index3";s:3:"xyz";s:6:"index4";s:3:"123";}

变成数组样式后:

以下为引用的内容:
a:4:
{
 s:6:"index1";s:3:"abc";
 s:6:"index2";s:3:"def";
 s:6:"index3";s:3:"xyz";
 s:6:"index4";s:3:"123";
}

举报

  • 相关推荐
  • 选奶必看:opo 在奶粉中的功效和作用大揭秘

    文章介绍了OPO结构脂在婴幼儿奶粉中的重要作用。OPO是一种接近母 乳脂肪结构的成分,能减少钙皂形成,改善宝宝便秘问题,促进钙质吸收和骨骼发育,同时增强肠道菌群平衡和免疫力。相比普通奶粉的POP结构,OPO更易消化吸收。佳贝艾特悦护羊奶粉不仅含有4.2g/100g的高含量OPO,其羊奶小分子结构吸收率高达95%,还添加10倍类HMO成分,临床验证可提升保护因子IgG达62%,全方位�

  • iPhone 17 Pro精准机模现身:铝合金一体化机身 一眼精致

    有博主晒出了苹果iPhone 17 Pro的精准机模,相比之前爆料的机模,新机模的质感、精致度更接近真机。 如图所示,iPhone 17 Pro采用横向大矩阵设计,后置三摄位置在左侧,闪光灯和LIDAR激光雷达扫描仪位于矩阵右侧。 不止于此,iPhone 17 Pro采用一体化铝合金材质,摄像头和机身后盖采用火山口过渡设计,这个火山口跟后盖是一体化成型,必须单独铣出,工艺难度很高。

  • 邦彦技术&城银股份达成合作:以邦彦云PC重塑医疗信息化底座

    2025年7月14日,城银股份与邦彦技术签署合作协议,共同推进智慧医疗发展。城银深耕医疗信息化17年,将把邦彦云PC纳入全线智慧医疗解决方案的桌面标准;邦彦承诺投入专项资源,将云PC打造为行业标杆。邦彦云PC结合本地性能与云端管控,解决医疗场景对影像秒开、外设兼容、数据安全三大需求。双方将通过技术、场景、生态协同,推动云PC在智慧医院、养老、公卫等场景落地,重塑医疗信息化基础设施,共建面向未来的数字健康底座。

  • 小米YU7今日开启限时改配 成功需重新进入排队序列

    今日上午10:00,小米CEO雷军发布消息称,小米YU7正式开启限时改配活动,该活动将持续至7月7日23:59:59。在此期间,凡7月6日10:00前完成锁单的小米YU7(非准现车)准车主,均可参与此次改配。 据介绍,改配成功后,订单将立即锁定,并重新进入排队序列,预计交付周期也将据此重新计算。生产及交付顺序将依据改配成功后的订单锁定时间重新安排。值得一提的是,此次改配活�

  • 苹果iPhone 17 Pro系列四配色渲染图出炉:史上首款橙色登场

    据majinbuofficial爆料,结合配件厂商和知情人士的消息,确认今年iPhone 17 Pro系列降提供四款配色可选,与前代保持一致。 具体配色是黑色、深蓝色、银色、橙色,其中橙色是iPhone Pro系列有史以来第一次使用。 爆料对四款配色的描述如下: 黑色:经典且优雅,类似此前型号中的黑色钛金属,但采用磨砂处理,增加优雅感并减少指纹可见度。 深蓝色:一种深到几乎夜幕般的色�

  • 网友住酒店光脚洗澡感染HPV 医生回应:需注意防护

    ​近日,“酒店光脚洗澡可能感染HPV”这一话题在网络上迅速发酵,引发了公众对公共场所卫生安全问题的广泛关注和热烈讨论。据媒体报道以及医学专家分析,在酒店等公共浴室光脚洗澡,确实存在感染跖疣病毒的风险,而该病毒正是一种低危型HPV病毒。 跖疣,这一由人乳头瘤病毒(HPV)引发的足部良性增生物,其感染多发生在温暖潮湿的环境中。医学专家指出,当足部皮

  • iPhone 17系列重回铝合金中框:仅iPhone 17 Air保留钛合金

    据知名分析师Jeff Pu介绍,苹果将在iPhone 17系列重回铝合金中框,只有iPhone 17 Air保留钛合金中框。 苹果在2017年的iPhone X上首次开始使用不锈钢,并且在Pro机型上延续到iPhone 14 Pro,而后又在iPhone 15 Pro开始使用钛合金。 如今看来,钛合金成为苹果最快抛弃的材质。 iPhone 17 Air选择钛合金中框也是迫不得已,因为该机厚度在6mm以内,而钛合金的强度、硬度、韧性、抗拉强度、抗伸

  • 外观大改!iPhone 17系列4款机型全配色曝光

    据分析机构预测,iPhone 17系列将于本月开始试生产,8月份开始量产,并于9月份正式发布。 今年苹果会发布iPhone 17、iPhone 17 Air、iPhone 17 Pro、iPhone 17 Pro Max四款机型。 科技媒体Macworld最新报道称,在苹果内部文件中看到了iPhone 17全系机型的配色,带来了以往从没用过的新配色。

  • 看重全球化前景,海尔智家同时跻身港股两大指数TOP10

    2025年消费投资呈现新趋势:A股消费仍聚焦白酒,港股则转向国货出海和Z世代崛起。国证港股通消费指数年初至今上涨20%,恒生消费指数累计涨幅超15%,而中证消费指数仍下跌。泡泡玛特、安踏体育、海尔智家等新消费龙头获南向资金青睐,其中南向持有海尔智家占比提升3个百分点。这些企业全球化前景被看好:泡泡玛特预计2025年海外收入占比超30%;安踏体育全球市占率将超15%;海尔智家海外营收占比已超50%。东南亚市场表现亮眼,海尔在泰国、越南、印尼白电销量均居第一并逆势增长。企业通过差异化产品满足全球需求,如针对东南亚推出洗头巾洗衣机等创新产品。海尔近期回购A股和H股员工持股计划,彰显管理层信心。华泰证券建议关注具备"产业出海+全球运营"优势的企业。

  • 苹果又挤了一次牙膏:iPhone 17系列升级无线充电

    据爆料,iPhone 17系列机型最高将支持25W无线快充,用户使用第三方MagSafe充电器就能实现25W无线充。 据悉,当前支持MagSafe的iPhone采用的是无线充电联盟第二代充电标准Qi 2,使用第三方充电器时,Qi 2的最大功率为15W;当使用苹果官方的30W充电器时,iPhone 16系列最高可以支持25W无线快充。