(1)这两个方法是自动调用的
(2)这两个方法只有在成员变量是private的时候才会自己调用
testclass.php <?php class testclass { private $var1 = "a"; public function __construct() { } public function __get($pro) { return $this->$pro; } public function __set($pro,$value) { $this->$pro = $value; } public function __destruct() { } }
<?php include_once "testclass.php"; $t = new testclass(); $t->var1 = "c"; echo $t->var1; //输出 c
(3)如果是public的成员变量,可是使用_isset()和unset()函数判断
如果是private成员变量需要实现__isset()成员函数和unset()成员函数才能判断一个成员是否存在或者销毁一个成员变量
public function __isset($pro) { return isset($this->$pro); } public function __unset($pro) { unset($this->$pro); }