PHP笔记之对象串行化

串行化:序列化,将对象转成字符串
应用场合:
1.将对象在网络中传输
2.将对象持久保存

将一个对象串行化

    $p = new Person("wp",10,"man");
    $str = serialize($p);
    file_put_contents("objstr", $str);
    echo "保存成功";

将串行化后的字符串反串行化

      //读出字符串从文件中
    $str = file_get_contents("objstr.txt");
    //返串行化
    $p = unserialize($str);

串行化的魔法函数
__sleep
可以设置需要串行化的对象的属性,只要在这个方法中,返回一个数组,在数组中声明了那个属性名,那个属性就会被串行化,没有在这个数组中的就不被串行化,默认是全部串行化

echo "数组串行化自动调用 ";
return array("name","age");

__wakeup()
在反串行化时自动调用的方法,对串行化回来的对象,进行初始化,类似于__construct()和__clone()

function __wakeup(){
            $this->name = 10;
}

json格式转化

$arr = array("name"=>"wp","age"=>10,"sex"=>“man”);
//串行化
$str = json_encoder($arr);

//反串行化,第二个参数true反串行化为数组,如果不加第二个参数,默认返回的是对象
$parr = json_decode($str,true);

你可能感兴趣的:(PHP笔记之对象串行化)