你看到的是serialized representation 阵列的Array( \'75\', \'68\' )
. 序列化是PHP将数据对象存储为字符串的过程,就像JSON是Javascript对象的字符串表示形式一样。PHP数据结构可以通过PHP的serialize()
, 然后再次使用unserialize()
.
WordPress还提供仅在需要时执行必要操作的函数,以防止意外的双重序列化或非序列化:maybe_serialize()
和maybe_unserialize()
. 您也可以使用WordPress检查自己is_serialized()
.
来自PHP的评论serialize()
, 序列化数据对象的结构如下所示:
一串s:size:value;
整数i:value;
布尔型b:value;
(不存储"true"
或"false"
, 是否存储1
或0
)
无效的N;
大堆a:size:{key definition;value definition;(repeated per element)}
对象O:strlen(object name):object name:object
大小s:strlen(property name):property name:property definition;(repeated per property)
字符串值始终位于双引号中。
数组键总是整数或字符串;使用其他类型作为键会产生不需要的结果:
null => \'value\'
等于\'s:0:"";s:5:"value";\'
true => \'value\'
等于\'i:1;s:5:"value";\'
false => \'value\'
等于\'i:0;s:5:"value";\'
array(whatever the contents) => \'value\'
等同于“非法偏移类型”警告,因为您不能将数组用作键;但是,如果使用包含数组的变量作为键,则它将等于\'s:5:"Array";s:5:"value";\'
, 尝试将对象用作键将导致与使用数组相同的行为因此,我们可以解释您特定的序列化数组a:2:{i:0;s:2:"75";i:1;s:2:"68";}
因此:a:2:{
长度为2的数组,包含:i:0;
在整数键处0
(即索引0
):s:2:"75";
值为“75”的长度为2的字符串i:1;
在整数键处1
(即索引1
):