php - 不明白 serialize()

标签 php

我正在查看此函数:用于 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_encodejson_decode)...


在 PHP 手册中,您还可以阅读 Object Serialization节,顺便说一句。

关于php - 不明白 serialize(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062439/

相关文章:

php - 使用 PHP 将 MySQL 中的行解析到文件中不起作用

php - 尝试使用 INNER JOIN 关联两个表时,我的 php 模板中出现 foreach() 错误

php - 异步子进程中的 Symfony2 命令

php - 在 PHP 中检测浏览器退出

php - 查找并替换 Curl 输出 PHP

php - 从存在 id(来自另一个表)的一个表中选择

php - 在特定事件发生前 24 小时安排电子邮件通知?

php - 使用 jquery 从 php 解析 XML

php sql语句的构成

PHP 字节 2 双字