json_encode 或 序列化(serialize)那种方式存储PHP数组更好

这取决于手头的要求。

与PHP序列化相比,JSON更快,除非满足以下条件:

  • 存储深度嵌套的数组。

  • 需要将存储的对象反序列化为适当的类。

  • 交互是在不支持json_decode的旧PHP版本之间进行的。

以下代码行可用于使用json_encode-存储PHP数组-

json_encode($array, JSON_UNESCAPED_UNICODE)

JSON不会在任何地方存储对象的原始类,但是可以将其还原为属于stdClass的类实例。

为什么使用json_encode而不是序列化?

  • 与序列化相比,JSON更可移植。

  • 不能使用JSON来利用__sleep() 和 __wakeup() 的特性。

  • 默认情况下,公共属性使用JSON序列化。(如果PHP版本> = 5.4,则可以实现JsonSerializable来更改行为)。

示例

<?php
   //声明数组
   $value = array(
      "name"=>"name_me",
      "email"=>"(cainiaojc.com)"
   );
   //使用json_encode()函数
   $json = json_encode($value);
   //显示输出
   echo($json);
?>

输出结果

{"name":"name_me","email":"(cainiaojc.com)"}