存储 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"}