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

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

4

1 回答 1

2

你必须选择:

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

这个想法是制作private[or protected]字段和公共访问器以防万一,这是封装的要点之一。

于 2012-09-27T01:04:31.837 回答