储存 PHP 数组的首选方法(json_encode 还是 serialize)?\n
这取决于手头的需求。
除非满足以下条件,否则 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 // Array is declared $value = array( "name"=>"name_me", "email"=>"myemail.com" ); // json_encode() function is used $json = json_encode($value); // Displaying output echo($json); ?>
输出
将产生以下输出:
{"name":"name_me","email":"myemail.com"}
广告