__sleep() 就表示当你执行serialize()这个序列化函数之前时的事情,就像一个回调函数,所以在这个回调函数里面我们就可以做点事情,来加密我们的某些参数值,防止序列化后,别人容易读懂。
__wakeup() 和__sleep()大同小异,只不过是反序列化之前进行的回调函数,可以用来解密我们加密的一些函数
__wakeup() 和__sleep()大同小异,只不过是反序列化之前进行的回调函数,可以用来解密我们加密的一些函数
__toString 将类转化为字符串之前调用的函数
__construct,构造函数,在实例化一个对象时候调用
__destruct 析构函数,销毁对象时候调用
__call,当调用一个不能访问的方法时候调用
__get,当访问一个不能访问的变量时候调用
__set,当给一个不能访问的变量赋值时候调用
__isset,判断一个变量是否已经设置
__unset
__sleep,
__wakeup,
__toString,
__set_state,
__clone
__autoload
__set_state
__invoke
class Student{
/**
*当实例化一个对象时候调用
*/
function __construct($name='default',$age=0){
$this->name=$name;
$this->age=$age;
}
/**
*当复制一个对象时候调用
*/
public function __clone(){
}
/**
*当调用一个不能访问的方法时候,调用
*/
public function __call($fnName,$args){
echo ('调用的'.$fnName.'方法没有找到,参数:');
var_dump($args);
}
/**
*当给一个不能访问的属性赋值时候,调用
*/
public function __set($params,$value){
echo ('设置'.$fnName.'属性为:'.$value.',但该属性并不存在');
}
/**
*当访问一个不能访问的属性时候,调用
*/
public function __get($params){
}
/**
*当你执行serialize()这个序列化函数之前调用,这样可以在序列化之前,对重要数据进行加密
*/
public function __sleep(){
}
/**
*当你执行unserialize()这个反序列化函数之前调用,这样可以在反序列化之前,对加密的数据进行解码
*/
public function __wakeup(){
}
/**
*当类的实例,即对象直接输出时候调用,如echo一个对象
*/
public function __tostring(){
echo '输出对象';
}
}