PHP中的访问控制符有三种:public,protected和private。
注:打勾表示可以在该位置上,可以访问修饰符修饰的类成员。访问是通过使用类名/类对象来访问的。
对于protected修饰符而言,
1)子类继承了父类中protected修饰的成员;
2)子类中可以定义父类对象或使用父类名来访问protected修饰的成员。
举例说明:
class Person {
private $_name;
protected static $CITY = "Xiamen";
protected $age = 22;
public function __construct($name) {
$this->_name = $name;
}
protected function getName() {
return $this->_name;
}
protected function getCountry() {
return "China";
}
}
class Student extends Person {
public function getInfo() {
$p = new Person("myName");
echo "继承了protected修饰的\$age成员属性:".$this->age."。
";
echo "继承了protected修饰的getCountry()成员方法:".$this->getCountry()."。
";
echo "通过父类对象调用了protected修饰的getName()实例方法:".$p->getName()."。
";
echo "通过父类名访问protected修饰的\$CITY静态属性:".Person::$CITY."。
";
}
}
$s = new Student();
echo $s->getInfo();
/* 输出:
继承了protected修饰的$age成员属性:22。
继承了protected修饰的getCountry()成员方法:China。
通过父类对象调用了protected修饰的getName()实例方法:myName。
通过父类名访问protected修饰的$CITY静态属性:Xiamen。
*/
?>
注意:
1)父类中的private修饰的成员不会被子类继承;
2)类对象是可以访问类的静态成员的,如:$this::$CITY。