public 表示全局,类内部外部子类都可以访问。
protected表示受保护的,只有本类或子类或父类中可以访问。
private表示私有的,只有本类内部可以使用,在子类内也不可以访问。
父类的成员,无论是public、protected或private,在子类内都可以覆盖。但子类的访问权限必须高于或等于父类,即父类为protected,子类该成员必须为protected或public。访问权限public > protected > private。
__get($var):当访问private、protected或不存在的成员变量时,会调用该函数,public则不会。
__set($var, $val):第一个参数变量名,第二个参数变量值。当为private、protected或不存在的变量设置值时,会调用该函数,public则不会。
class T{
private $a = 10;
private $b = 100;
protected $c = 1;
public function __get($n){
echo $n;
}
public function __set($n, $v){
echo $n . '-' . $v;
}
public function usechild(){
$this->show();
}
public function getName(){
return 'T';
}
}
class M extends T{
public $d = 1000;
public function show(){
echo $this->d . '-' . $this->c;
}
public function getName(){
return 'M'.parent::getName();
}
}
class N {
public function getName(){
return M::getName();
}
}
// __get() __set()
$t = new T();
$t->a; //'a'
$t->c = 'value'; // 'c-value'
// extends
$m = new M();
$m->usechild(); //1000-1
// overload
$n = new N();
echo $n->getName(); //'MT'
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/828.html





















