首页 文章资讯内容详情

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

2026-06-04 1 花语

这取决于手头的要求。

与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"=>"nhooo.com" ); //使用json_encode()函数 $json = json_encode($value); //显示输出 echo($json); ?>

输出结果

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