,當你做這樣的差異會變得清晰:
class Liam {
private getFirstName() {
return "Liam";
}
public function getName() {
return $this->getFirstName();
}
}
class Max extends Liam {
private function getFirstName() {
return "Max";
}
}
class Peter extends Liam {
public function getLiamsName() {
return $this->getFirstName();
}
}
$max = new Max();
echo $max->getName();
// returns "Liam", not "Max" as you might expect
$peter = new Peter();
echo $peter->getLiamsName();
// PHP Fatal error: Uncaught Error: Call to private method Liam::getFirstName() [...]
馬克斯將返回「利亞姆」,因爲getName()
電話getFirstName()
在利亞姆類,而不是一個來自課堂。這意味着使用私有方法,您可以確保在課堂中每次調用此方法時都會使用此方法,並且這種方法不會被覆蓋。
解釋它在一般條款:
私有方法只是在類中訪問。它們不能被外部覆蓋或訪問,甚至不能被擴展。
保護的方法是在擴展類的類和內部觸及,但你不能從外部喜歡稱他們爲:
$max = new Max();
$max->iAmProtected();
,將不會有私人或受保護的方法的工作。
看來你沒有直接訪問它。你可以調用'$ info-> namedilam()'? – alayor
you'r調用公共函數kicu()不是私有函數namedilam() – Sepultura
可能重複[公共,私有和受保護的區別是什麼?](http://stackoverflow.com/questions/4361553/what -is最差之間,公共和私營部門和保護) – dbrumann