序列化与json

来源:互联网 发布:捷安特淘宝有卖吗 编辑:程序博客网 时间:2024/06/11 22:03
你是否会把一个比较复杂的数据结构存到数据库或是文件中?你并不需要自己去写自己的算法。PHP早已为你做好了,其提供了两个函数:?serialize() 和 unserialize():


// 一个复杂的数组
$myvar = array(
    'hello',
    42,
    array(1,'two'),
    'apple'
);
  
// 序列化
$string = serialize($myvar);
  
echo $string;
/* 输出
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/
  
// 反序例化
$newvar = unserialize($string);
  
print_r($newvar);
/* 输出
Array
(
    [0] => hello
    [1] => 42
    [2] => Array
        (
            [0] => 1
            [1] => two
        )
  
    [3] => apple
)
*/

这是PHP的原生函数,然而在今天JSON越来越流行,所以在PHP5.2以后,PHP开始支持JSON,你可以使用 json_encode() 和 json_decode() 函数

// a complex array
$myvar = array(
    'hello',
    42,
    array(1,'two'),
    'apple'
);
  
// convert to a string
$string = json_encode($myvar);
  
echo $string;
/* prints
["hello",42,[1,"two"],"apple"]
*/
  
// you can reproduce the original variable
$newvar = json_decode($string);
  
print_r($newvar);
/* prints
Array
(
    [0] => hello
    [1] => 42
    [2] => Array
        (
            [0] => 1
            [1] => two
        )
  
    [3] => apple
)
*/

这看起来更为紧凑一些了,而且还兼容于Javascript和其它语言。但是对于一些非常复杂的数据结构,可能会造成数据丢失。
原创粉丝点击