Atitit php序列化 php的serialize序列化和json序列化

本文详细介绍了PHP中的序列化过程,包括数组和对象的序列化格式。解析了不同数据类型的序列化标识符,并深入探讨了对象字段名的序列化规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Atitit php序列化 phpserialize序列化json序列化

 

 

PHP 对不同类型的数据用不同的字母进行标示,Yahoo 开发网站提供的Using Serialized PHP with
Yahoo! Web Services 一文中给出所有的字母标示及其含义:
a - array
b - boolean
d - double
i - integer
o - common object
r - reference
s - string
C - custom object
O - class
N - null
R - pointer reference
U - unicode string
N 表示的是NULL,而bdi

 

作者::  ★(attilax)>>>   绰号:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊  汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.youkuaiyun.com/attilax

 

4.1.数组的序列化
数组(array)通常被序列化为:
a:<n>:{<key 1><value 1><key 2><value 2>...<key n><value n>}
其中<n> 表示数组元素的个数,<key 1><key 2>……<key n> 表示数组下标,<value 1><value
2>……<value n> 表示与下标相对应的数组元素的值。
下标的类型只能是整型或者字符串型,序列化后的格式跟整型和字符串型数据序列化后的格式相同。
数组元素值可以是任意类型,其序列化后的格式与其所对应的类型序列化后的格式相同。
4.2.对象的序列化
对象(object)通常被序列化为:
O:<length>:"<class name>":<n>:{<field name 1><field value 1><field name
2><field value 2>...<field name n><field value n>}
其中<length> 表示对象的类名<class name> 的字符串长度。<n> 表示对象中的字段1个数。这些字段
包括在对象所在类及其祖先类中用varpublicprotected private 声明的字段,但是不包括static
const 声明的静态字段。也就是说只有实例(instance)字段。
<filed name 1><filed name 2>……<filed name n>表示每个字段的字段名,而<filed value 1>
<filed value 2>……<filed value n> 则表示与字段名所对应的字段值。
字段名是字符串型,序列化后格式与字符串型数据序列化后的格式相同。
字段值可以是任意类型,其序列化后的格式与其所对应的类型序列化后的格式相同。
但字段名的序列化与它们声明的可见性是有关的,下面重点讨论一下关于字段名的序列化。

 

 

PHP序列化_serialize_格式详解 - 低调走过 - 博客频道 - youkuaiyun.com.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值