序列化与反序列化

 

当我们向把数组或者对象 写入文本中的时候,会保存吗?答案是不会的?那就需要用到 序列化

  序列化:serialize()    反序列化:unserialize()  

数组的存储

<?php

    $arr=["中国","美国","韩国","新加坡"];

    $file="./1.txt";

    

    file_put_contents($file,$arr);    //写入的是字符串  也不是数组
    //序列化
    $arrrNew=serialize($arr);

    file_put_contents($file,$arrrNew); //a:4:{i:0;s:6:"中国";i:1;s:6:"美国";i:2;s:6:"韩国";i:3;s:9:"新加坡";} 保存成功了

    //反序列化输出
    print_r(unserialize(file_get_contents($file)));  //Array ( [0] => 中国 [1] => 美国 [2] => 韩国 [3] => 新加坡 )

 

对象的存储

  对象的存储和数组一样,但是有个条件,就是 需要有类的参与,比如  我们序列化后,把类删除了,那反序列化后,就会出现未知的类型

 

posted @ 2021-01-15 14:53  WhiteSpace  阅读(83)  评论(0编辑  收藏  举报