特别的方法
在特定的时机,完成自动调用的一些对象方法
__construct():实例化过程中 初始化对象操作
__destruct():对象被销毁的过程中,释放对象栈占用的额外资源 ,收尾性工作
__clone():克隆对象,重新初始化一下克隆出来的新对象
__toString():对象转换为字符串
__set():
__get():
__unset():
__call()
__callStatic()
__sleep() 序列化对象过程中指定需要被序列化的对象属性列表
__wakeup() 凡序列化过程中
__invoke()
案列分析代码战术 Student.class.php
<?php
class Student{
private $_name;
private $_age;
public $sentry=100;
public function __construct($_name,$_age){
$this->_name=$_name;
$this->_age=$_age;
}
public function entry($num){
return $this->sentry -=$num;
}
//睡眠
public function __sleep(){
return array('_name','_age');
}
//苏醒
public function __wakeup(){
$this->entry(3);
}
}
?>
序列化操作
<?php
function auto($className){
require "./".$className.".class.php";
}
spl_autoload_register("auto");
$Stu=new Student('杨过',20);
$Stu->entry(10);
$Stu->entry(20);
$Stu->entry(30);
echo $Stu->sentry;
//对此对象进行序列化操作
$str=serialize($Stu);
echo "<br/>";
$result=file_put_contents("./stu.txt",$str);
var_dump($result);
?>
反序列化操作
<?php
$str=file_get_contents("./stu.txt");
//为了防止在反序列化过程中出现不完整的类需要在此处导入该类进行实例化
require "./Student.class.php";
$obj=unserialize($str);
var_dump($obj);
?>