网络编程 
首页 > 网络编程 > 浏览文章

php序列化函数serialize() 和 unserialize() 与原生函数对比

(编辑:jimmy 日期: 2026/1/29 浏览:3 次 )

php中有格式化字符串并转换成数组或对象的好方法,即序列化处理。
有两种序列化变量的方法。

以下示例,使用 serialize() 和 unserialize() 函数:

// a complex array
$myvar = array(
 'hello',
 42,
 array(1,'two'),
 'apple'
);

// convert to a string
$string = serialize($myvar);

echo $string;
/* prints
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/

// you can reproduce the original variable
$newvar = unserialize($string);

print_r($newvar);
/* prints
Array
(
  [0] => hello
  [1] => 42
  [2] => Array
    (
      [0] => 1
      [1] => two
    )

  [3] => apple
)
*/

这是原生的 PHP 序列化方法。

然而,由于 JSON 近年来大受欢迎,PHP5.2 中已经加入了对 JSON 格式的支持。

现在你可以使用 json_encode() 和 json_decode() 函数:

// a complex array
$myvar = array(
 'hello',
 42,
 array(1,'two'),
 'apple'
);

// convert to a string
$string = json_encode($myvar);

echo $string;
/* prints
["hello",42,[1,"two"],"apple"]
*/

// you can reproduce the original variable
$newvar = json_decode($string);

print_r($newvar);
/* prints
Array
(
  [0] => hello
  [1] => 42
  [2] => Array
    (
      [0] => 1
      [1] => two
    )

  [3] => apple
)
*/

这将更为行之有效,尤其与 JavaScript 等许多其他语言兼容。

注意:对于复杂的对象,某些信息可能会丢失。

以上所述就是本文的全部内容了,希望大家能够喜欢。

上一篇:将PHP从5.3.28升级到5.3.29时Nginx出现502错误
下一篇:php中header跳转使用include包含解决参数丢失问题
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。