从嵌套类访问父范围

时间:2018-11-07 02:27:54

标签: php class inheritance

我有一个主班,例如。

class MY_API {
    function __construct($db) {
        $this->something = new MY_SOMETHING($db);
        $this->anotherthing = new MY_ANOTHERTHING($db);
    }
}

所以我可以通过     $this->something->somefunction();

但是我不确定如何访问:

$this->anotherthing->anotherfunction();

从内部:

$this->something->somefunction();

我想我需要类似的东西:

$this->parent->anotherthing->anotherfunction();

这完全有可能吗,还是我需要更改构建类的方式?

理想情况下,我只是希望这些函数位于一个不同的文件中,而不是拥有一个非常大的文件,并使每个文件中的每个函数都可以相互访问

1 个答案:

答案 0 :(得分:0)

如果MY_SOMETHINGMY_ANOTHERTHING有依赖性,请注入它!

class MY_SOMETHING {
  private $db;
  private $anotherThing;

  public function __construct($db, MY_ANOTHERTHING $anotherThing) {
    $this->db = $db;
    $this->anotherThing = $anotherThing;
  }

以及您的MY_API构造函数中

public function __construct($db) {
    $this->anotherthing = new MY_ANOTHERTHING($db);
    $this->something = new MY_SOMETHING($db, $this->anotherThing);
}

现在您的MY_SOMETHING类可以在其任何方法中使用$this->anotherThing