目录
一.PHP的类与对象
在讲序列化与反序列化之前,我们可以先了解一下PHP的类与对象。(熟悉PHP的可以直接跳过)
1.类
定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
<?php
class Person{
/*成员变量*/
public $name;//公有
var $weight;//如果用var来定义,则默认为公有
private $age;//私有
protected $sex;//受保护
/*成员函数*/
//构造函数:用来在创建对象时初始化对象(与new运算符搭配使用)
function __construct($n,$w,$a,$s){
$this->name=$n;
$this->weight=$w;
$this->age=$a;
$this->sex=$s;
}
//析构函数:当对象结束其生命周期时,系统会自动调用
function __destruct(){
print "销毁";
}
function SetAge($a){
$this->age=$a;
}
function getAge(){
echo $this->age;
}
}
?>
2.对象
是类的实例。
/*对象的创建*/
$person=new Person("张三",60,20,"男");//用new运算符来实例化该类的对象
/*调用成员函数*/
$person->setAge(18);
$person->getAge();
二.序列化与反序列化
1.序列化
1.1什么是序列化
序列化是将对象的状态信息转化为可以存储或传输的形式的过程。简单讲,就是将数据转化成一种可逆的数据结构。
序列化的作用就是便于传输对象和用作缓存。
在PHP中,使用serialize()函数进行序列化。
1.2序列化格式
(以下使用的对象均为上述的例子)
<?php
$str1="abcd";//字符型
$str2=20;//整型
$str3=true;//boolean
$str4=null;//null
$str5=array("index1"=>"value1","index2"=>"value2");//数组
$str6=new Person("张三",60,20,"男");//对象
/*序列化*/
$str11=serialize($str1);
$str22=serialize($str2);
$str33=serialize($str3);
$str44=serialize($str4);
$str55=serialize($str5);
$str66=serialize($str6);
echo $str11."</br>";
echo $str22."</br>";
echo $str33."</br>";
echo $str44."</br>";
echo $str55."</br>";
echo $str66."</br>";
?>
运行结果: