我正在查看此函数:用于 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 数据从一个 PHP 脚本传输到另一个 PHP 脚本
- 能够在单个数据库字段中存储(几乎)任何类型的 PHP 数据——即使这在数据库端不是一个很好的做法,但有时它还是很有用的
- 能够在某些缓存机制(APC、memcached、文件等)中存储数据,您只能在其中存储字符串
但是请注意,当您只使用 PHP 时,使用 serialize
非常有用(因为它是一种特定于 PHP 的格式,几乎可以处理任何类型的 PHP 数据,并且真的很快) ;但是当您还必须使用 PHP 以外的其他东西时,它就不是那么好了(因为它是特定于 PHP 的)。在这些情况下,您可以使用 XML、JSON(请参阅 json_encode
和 json_decode
)...
在 PHP 手册中,您还可以阅读 Object Serialization节,顺便说一句。
关于php - 不明白 serialize(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062439/