Atitit php序列化 php的serialize序列化和json序列化
Atitit php序列化 php的serialize序列化和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,而b、d、i、s
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/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个数。这些字段
包括在对象所在类及其祖先类中用var、public、protected 和private 声明的字段,但是不包括static 和
const 声明的静态字段。也就是说只有实例(instance)字段。
<filed name 1>、<filed name 2>……<filed name n>表示每个字段的字段名,而<filed value 1>、
<filed value 2>……<filed value n> 则表示与字段名所对应的字段值。
字段名是字符串型,序列化后格式与字符串型数据序列化后的格式相同。
字段值可以是任意类型,其序列化后的格式与其所对应的类型序列化后的格式相同。
但字段名的序列化与它们声明的可见性是有关的,下面重点讨论一下关于字段名的序列化。
PHP序列化_serialize_格式详解 - 低调走过 - 博客频道 - CSDN.NET.html