存储 PHP 数组的首选方法(json_encode 或 serialize)?\

phpserver side programmingprogramming

这取决于手头的需求。

除非满足以下条件,否则 JSON 比 PHP 序列化更快−

  • 存储深度嵌套数组。
  • 存储的对象需要反序列化为适当的类。
  • 交互发生在不支持 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"=>"myemail.com"
   );
   // 使用 json_encode() 函数
   $json = json_encode($value);
   // 显示输出
   echo($json);
?>

输出

这将产生以下输出−

 {"name":"name_me","email":"myemail.com"} 

相关文章