博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP 魔术函数

Posted on 2012-03-15 16:31  bug yang  阅读(360)  评论(0编辑  收藏  举报

PHP魔术函数

class Person{
private $name;
private $age;
private $sex;
public function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
public function __get($property){
if(isset($this->$property)){
return $this->$property;
}
else{
return null;
}
}
public function __set($property,$value){
$this->$property=$value;
}
//当在类外部使用isset()函数测定私有成员$nm时,自动调用
public function __isset($property){
return isset($this->$property);
}
//当在类外部使用unset()函数来删除私有成员时自动调用的
public function __unset($property){
unset($this->$property);
}
//在对象外部直接调用echo 对象名 的时候自动调用__toString()
public function __toString(){
return "hello world"."<br/>";
}
//在对象外面调用clone时,自动调用__clone()
public function __clone(){
$this->name="I am clone object";
}
//在对象外部调用对象没有的方法和参数的时候,取代报错,自动调用__call函数
public function __call($function_name, $args)
{
print "你所调用的函数:$function_name(参数:";
print_r($args);
print ")不存在!<br>\n";
}
//在对对象进行串行化的时候serialize,自动调用__sleep()
public function __sleep(){

}
//在对象进行反序列化的时候unserialize,自动调用wakeup()
public function __wakeup(){

}
}
function __autoload($classname){
require_once($classname.".php");
}