[英]Don't understand serialize()
我正在看这个函数:用于PHP的serialize(),我真的不明白它的功能是什么。 有人能提供一个简单的输出示例吗?
基本上, serialize
的目标是将任何(几乎)类型的数据转换为字符串,因此可以传输,存储,...
一个简单的例子:
$my_array = array(
'a' => 10,
'glop' => array('test', 'blah'),
);
$serialized = serialize($my_array);
echo $serialized;
会得到这个输出:
a:2:{s:1:"a";i:10;s:4:"glop";a:2:{i:0;s:4:"test";i:1;s:4:"blah";}}
然后,您可以反unserialize
该字符串,以获取原始数据:
$serialized = 'a:2:{s:1:"a";i:10;s:4:"glop";a:2:{i:0;s:4:"test";i:1;s:4:"blah";}}';
$data = unserialize($serialized);
var_dump($data);
会得到你:
array
'a' => int 10
'glop' =>
array
0 => string 'test' (length=4)
1 => string 'blah' (length=4)
常见用途包括:
但请注意,当您只使用PHP时,使用serialize
是很好的(因为它是一种特定于PHP的格式,几乎可以处理任何类型的PHP数据,并且非常快) ; 但是当你不得不使用除PHP以外的其他东西(因为它是特定于PHP的)时,它并不是那么好。 在这些情况下,您可以使用XML,JSON(请参阅json_encode
和json_decode
),...
在PHP手册中,您还可以阅读对象序列化部分,顺便说一句。
例如,如果要保存在数据库行中规范化的数组或对象,则serialize()
(和unserialize()
)是您的朋友,因为您无法在不先将其转换为字符串的情况下存储数组或对象。
json_encode()
和json_decode()
类似,只是它们编码为JSON。
看到这个例子 ,应该很清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.