Abstract private functions
问题 The following code will have PHP unhappy that customMethod() is private. Why is this the case? Is visibility determined by where something is declared rather than defined? If I wanted to make customMethod only visible to boilerplate code in the Template class and prevent it from being overriden, would I just alternatively make it protected and final? Template.php: abstract class Template() { abstract private function customMethod(); public function commonMethod() { $this->customMethod(); } }