我已经读过序列化生成值的可存储表示但是这意味着什么?
这里的“可存储代表”是什么?
有人可以用一个例子来解释这个吗?
答案 0 :(得分:13)
它生成变量的字符串表示。
示例:
$var = array(
'product1' => array('color' => 'red', 'size' => 'L'),
'product2' => array('color' => 'blue', 'size' => 'M')
);
echo serialize($var);
输出:
a:2:{s:8:"product1";a:2:{s:5:"color";s:3:"red";s:4:"size";s:1:"L";}s:8:"product2";a:2:{s:5:"color";s:4:"blue";s:4:"size";s:1:"M";}}
此字符串可以使用unserialize
转回原始多维数组。
答案 1 :(得分:2)
这意味着它可以将对象/引用轻松保存到文件,流式传输等,然后使用相同的数据重建。
假设我有一个名为Person
的班级。为了简单起见,我会做伪C#。
class Person {
string FirstName { get; set; }
string LastName { get; set; }
}
我有以下Person
。
var bob = new Person();
bob.FirstName = "Bob";
bob.LastName = "Smith";
然后,如果我将其序列化为XML,我会得到。
<Person>
<FirstName>Bob</FirstName>
<LastName>Smith</LastName>
</Person>
稍后,我可以重新创建一个等同于Person
的{{1}}实例。
答案 2 :(得分:1)