簡體   English   中英

在原始類中實例化的類中的類的PHP Access屬性

[英]PHP Access property of a class from within a class instantiated in the original class

我不確定如何用正確的術語來解釋這一點,所以也許一個例子是最好的方法...

$master = new MasterClass();

$master->doStuff();

class MasterClass {

    var $a;
    var $b;
    var $c;
    var $eventProccer;

    function MasterClass() 
    {
        $this->a = 1;
        $this->eventProccer = new EventProcess();
    }

    function printCurrent()
    {
        echo '<br>'.$this->a.'<br>';
    }

    function doStuff()
    {
        $this->printCurrent();
        $this->eventProccer->DoSomething();
        $this->printCurrent();
    }
}


class EventProcess {

    function EventProcess() {}

    function DoSomething() 
    {
        // trying to access and change the parent class' a,b,c properties

    }
}

我的問題是我不確定如何從EventProcess-> DoSomething()方法內訪問MasterClass的屬性? 我需要訪問,執行操作並更新屬性。 a,b,c屬性將是非常大的數組,並且在腳本執行期間將多次調用DoSomething()方法。 任何幫助或指針將不勝感激:)

在SO上已經對此進行了多次討論,每次都沒有這樣做的“本機”方法。 您必須將對MasterClass實例的引用傳遞給子類。 在PHP5中:

 $this->eventProccer = new EventProcess($this);

並將其存儲在子類中,如下所示:

 class EventProcess
  {
    private $masterClass; // Reference to master class

    function __construct($masterClass) 
      {
        $this->masterClass = $masterClass;
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM