PHP从一个子级访问另一个子级的私有方法
致命错误:从上下文“视图”调用私有方法DB::ReturnSomeData() 如何从视图类访问ReturnSomeData()方法?有类似“网关”的东西吗PHP从一个子级访问另一个子级的私有方法,php,oop,inheritance,Php,Oop,Inheritance,致命错误:从上下文“视图”调用私有方法DB::ReturnSomeData() 如何从视图类访问ReturnSomeData()方法?有类似“网关”的东西吗 class Master{ protected static $DB; function __construct(){ static::$DB = new DB(); $view = new View(); } } class DB extends Master{ private function Retu
class Master{
protected static $DB;
function __construct(){
static::$DB = new DB();
$view = new View();
}
}
class DB extends Master{
private function ReturnSomeData(){
return $data;
}
}
class View extends Master{
public function ViewData(){
$DBdata = static::$DB->ReturnSomeData();
}
}
这是我现在的照片,但我真的迷路了。
我的想法是希望从一个子类访问另一个子类的私有方法 您必须选择:
- 您想保持
私有吗?很好,您将无法从类外(甚至子类)访问它李>ReturnSomeData()
- 是否要访问
?将其公开ReturnSomeData()
私有
[或受保护
]字段和公共访问器成为可能,这是的要点之一。如果您要添加一个“网关”方法,允许您基于例如您传递的参数访问私有方法,这会有点违背私有方法的目的,你最好将它们公开,因为它们将是公开的。
class Master {
... }
class DB extends Master{
...
public function PassItToMe(){
return $this;
}
}
class View extends Master{
public function ViewData(){
$DBdata = static::$DB->PassItToMe()->ReturnSomeData();
}
}