PHP中有三种访问修饰符,分别是:
public(公共的、默认)
protected(受保护的)
private(私有的)
下面我们把类看作是一个家庭的某个成员,父类表示父亲,子类表示孩子。
public(公共的、默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。被声明为public的成员,它允许本类、本类子类和所有外部成员访问。举个例子:你的样貌是可以给所有外部成员看到的。
protected(受保护的)被声明为protected的成员,只允许该类及该类的子类进行访问。比如说你的银行卡里有多少钱,只有你自己或者你的孩子知道。
private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
比如:你银行卡的密码,只有你自己知道。
于是乎我们可以生成如下代码:
class Father{
public $face = "beautiful" ; //共有成员
protected $money = "100000000"; //受保护成员
private $password = "123"; //私有成员
}
class Child extends Father{
//访问父类的受保护成员
public function getFatherMoney(){
echo "Father's money is ".$this->money."<br>";
}
//访问父类私有成员
public function getFatherPassword(){
echo "Father's password is ".$this->password."<br>";
}
}
$fa = new Father();
echo "Father's face is ".$fa->face ."<br>";
$ch = new Child();
echo "Child's face is ".$ch->face . "<br>";
$ch->getFatherMoney();
$ch->getFatherPassword();
输出结果为:
说明子类没有继承到父类的私有成员,而继承到了父类的受保护成员。
总结一下,如果你想别人都能访问的属性和方法,就设置为public权限
如果你只想分享给子类的话,就设置为protected权限
如果你只想一个类独享的话,就设置为private权限