php的序列化与反序列化

Nov 7, 2017 09:50 · 58 words · 1 minute read PHP

序列化有利于数据的传输和存储,比如说需要将一个对象或者数组存储到数据库,如果是直接将对象或数组存储到数据库,是不能实现的。所以就需要将对象或数组进行序列化操作,使其变为一个字符串,这样就可以很方便的存储到数据库。从数据库取出来的是时候只要将其进行反序列化操作就可以将其还原为原来的样子。

定义

把复杂的数据类型压缩到一个字符串中

作用

序列化有利于数据的传输和存储,比如说需要将一个对象或者数组存储到数据库,如果是直接将对象或数组存储到数据库,是不能实现的。所以就需要将对象或数组进行序列化操作,使其变为一个字符串,这样就可以很方便的存储到数据库。从数据库取出来的是时候只要将其进行反序列化操作就可以将其还原为原来的样子。

相关函数

serialize() 把变量和它们的值编码成文本形式

unserialize() 恢复原先变量

示例

  • 源代码

    <?php 
    $a = array("yang"=>haha,"yy"=>hehe);
    echo "<pre>";
    print_r($a);
    echo "</pre>";
    echo "<br>";
        
    $a = serialize($a);//序列化
    echo "$a";
        
    $a = unserialize($a);//反序列化
    echo "<br>";
    var_dump($a);
    ?>
    
  • 输出

    //不做处理输出
    Array
    (
    [yang] => haha
    [yy] => hehe
    )
    
    //执行序列化函数后输出
    a:2:{s:4:"yang";s:4:"haha";s:2:"yy";s:4:"hehe";}
    
    //执行反序列化函数后输出
    array(2) { ["yang"]=> string(4) "haha" ["yy"]=> string(4) "hehe" }
    
tweet Share