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"."
"; } //在對象外面調用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 ")不存在!
\n"; } //在對對象進行序列化的時候serialize,自動調用__sleep() public function __sleep(){ } //在對象進行還原序列化的時候unserialize,自動調用wakeup() public function __wakeup(){ }}function __autoload($classname){ require_once($classname.".php");}