PHP序列化与反序列化

PHP

Posted by mr_king on August 30, 2020

PHP序列化与反序列化

一.什么是序列化

在php中序列话原名叫串行化 又叫序列化对象也是一种在内存中存储的数据类型,他的寿命通常随着生成该对象的程序终止而终止。有时候可能需要将对象的状态保存下来,需要时再将对象恢复。对象通过写出描述自己状态的数值来记录自己,这个过程称对象的串行化

1.什么是变量序列化

1)序列化是将变量转换为可保存或传输的字符串的过程; 2)反序列化就是在适当的时候把这个字符串再转化成原来的变量使用; 3)这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性; 4)序列化有利于存储或传递 PHP 的值,同时不丢失其类型和结构

再简单点 序列化就类比于你把一架完好的飞机 给带回家 但是现在飞机没有油 又没有那么大的车 你只能拆掉 然后一部分一部分的运回去 反序列化就是回去重新组装一下

example:

<?php
class Persion{
    public $name;
    public $age;
    public $sex;

    function __construct($name,$age,$sex){
        $this->name =$name;
        $this->age =$age;
        $this->sex =$sex;

    }
    function say(){
        echo "我的名字是:($this->name),我的年龄是($this->age),我的性别是($this->sex)";
    }
}
$a =new Persion('xxx',21,'男');
echo $a->say();
?>

这样会输出say方法的内容但是我想在另一个地方也用这个方法怎么办呢

新建一个php文件 叫做2.php

include “1.php”; //将源php给包含进去

$b = new Person(xxx,21,男) ;//实例化 这时候你要是输出 echo $b->say() 照样可以用

$str = serialize($b) ;//将内容全部字符化