一般来说,总是把类的属性定义为private,这更符合现实的逻辑。
但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性。
在PHP5中给我们提供了专门为属性设置值和获取值的方法,“__set()”和“__get()”这两个方法,这两个方法不是默认存在的,而是我们手工添加到类里面去的,像构造方法(__construct())一样,类里面添加了才会存在。
实例:
class Person{ private $name; private $age; private $sex; function __construct(){ } public function __set($property,$value){ $this->$property = $value; } public function __get($name){ return $this->$name; } } $p = new Person(); //调用类中的__set 方法 $p->name = "jackwoo"; //调用类中的__get方法 echo $p->name;
如果类中不定义_set() 和_get 方法会报错。