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) ;//将内容全部字符化