看走眼了,看成了 setter 和 getter。
这俩魔术方法的前提条件手册中说:如果对属性的读写是 “不可达” 的,会触发这个方法。
class User {
private $username;
private $password;
public function __set($name,$value) {
$this->$name = $value;
}
public function __get($name) {
return $this->$name;
}
}
上面的 password
显然是不可达的,但是因为魔术方法,此时却可以访问。鉴于此你可以简单把这俩魔术方法理解成 setter 和 getter 的偷懒行为。如果可以,尽量写完整的 setter 和 getter。