PHP访问从一个孩子到另一个孩子的私人方法

时间:2012-09-27 00:27:29

标签: php oop inheritance

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();
  }
}

致命错误:从上下文“查看”

调用私有方法DB :: ReturnSomeData()

如何从View类访问ReturnSomeData()方法?有没有类似“门户”的东西?

class Master {
... }

class DB extends Master{
...
  public function PassItToMe(){
    return $this;
  }
}

class View extends Master{
  public function ViewData(){
    $DBdata = static::$DB->PassItToMe()->ReturnSomeData();
   }
}

这是我的照片,但我真的输了。 我的想法是,我想从一个子类访问另一个子类的私有方法。

1 个答案:

答案 0 :(得分:2)

您必须选择:

  • 您想保持ReturnSomeData()私密吗?好的,你将无法从外部类[甚至子类]访问它;
  • 您想访问ReturnSomeData()?设为public

我的想法是制作private [或protected] 字段,以及公共访问者,以防万一,这是其中一个要点encapsulation