您的位置:首页 > 编程语言 > PHP开发

PHP中的访问控制

2012-08-04 23:51 225 查看
PHP中的访问控制符有三种:public,protected和private。



注:打勾表示可以在该位置上,可以访问修饰符修饰的类成员。访问是通过使用类名/类对象来访问的。

对于protected修饰符而言,
1)子类继承了父类中protected修饰的成员;
2)子类中可以定义父类对象或使用父类名来访问protected修饰的成员。

举例说明:

<?php
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."。<br />";
echo "继承了protected修饰的getCountry()成员方法:".$this->getCountry()."。<br />";
echo "通过父类对象调用了protected修饰的getName()实例方法:".$p->getName()."。<br />";
echo "通过父类名访问protected修饰的\$CITY静态属性:".Person::$CITY."。<br />";
}
}

$s = new Student();
echo $s->getInfo();

/* 输出:
继承了protected修饰的$age成员属性:22。
继承了protected修饰的getCountry()成员方法:China。
通过父类对象调用了protected修饰的getName()实例方法:myName。
通过父类名访问protected修饰的$CITY静态属性:Xiamen。
*/
?>

注意:
1)父类中的private修饰的成员不会被子类继承;
2)类对象是可以访问类的静态成员的,如:$this::$CITY。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: