原资料参考: xiu博客
seriallization 序列化 : 将对象转化为便于传输的格式, 常见的序列化格式:二进制格式,字节数组,json字符串,xml字符串。
deseriallization 反序列化:将序列化的数据恢复为对象的过程。
serialize(); 将对象序列化成字符串
unserialize(); 将字符串反序列化回对象
对象转换成字符串,方便传输
class Stu{
public $name;
public $age;
public $sex;
public $score;
}
$stu1 = new Stu();
$stu1->name = "xiu";
$stu1->age = 18;
$stu1->sex = true;
var_dump($stu1);
echo "
";
echo serialize($stu1);
O:object
以 __ 开头的函数,是PHP 中的魔术方法。
类中的魔术方法,在特定情况下会自动调用。即使魔术方法在类中没有被定义,也是真实存在的。
两个下划线
__construct() 在创建对象时自动调用
__destruct() 在销毁对象时自动调用
**__wakeup() unserialize()时会自动调用这个函数**
**__sleep()** serialize()时会自动调用这个函数
name="dog";
$anl->age=3;
//var_dump($anl);
@serialize ($anl);
?>
序列化和反序列化本身是为了实现数据在网络上完整高效的传输,但是由于反序列化过程中,对象的魔术方法会自动调用,魔术方法本身调用了别的方法,最终呈现一种链式调用,直到执行任意的代码或者命令,
为了满足一定的条件以后实现链式调用