修訂 - 我有多個類定義分散在文件(每個文件一個類)。我想要做的是這個;我有一個叫Master
的類,它創建了一個實例,而Master
對象創建了我定義類的其餘部分的實例。 Master
已將其所有屬性定義在其中。PHP類屬性/方法同步
在這種Master
創建的情況下,我希望能夠用Master
的屬性/方法直接從$this
即$this->methodInMaster
,而不需要通過Master
的對象到新的實例,其存儲和調用$this->MasterInstance->methodinMaster
。有什麼辦法可以做到這一點?
extends
關鍵字在這裏根本沒有幫助; Master
創建實例的類將繼承Master
的屬性和方法,但是這些實例對Master
的屬性所做的任何更改都不會在Master
對象中「保存」,而只是進行更改的對象。換句話說,這些變化在任何其他類中都是不可見的。
我相信這是一個限制,不使事情靜態,以便沒有'實例',但是有沒有辦法使用call, set
和get
魔法方法來解決所有這些問題?
您是否證實過這種情況?它違背了繼承的整個想法。 – Viruzzo
我不確定你想要實現什麼,但是從類擴展只擴展方法和字段而不是對象的實例。也許你應該嘗試一些設計模式鏈接代理或工廠? –
Viruzzo這是PHP的行爲,我也不明白。基本上我想要做的是我有很多類分散在多個文件。我將大部分屬性放在一個類中,我希望能夠通過'$ this-> property'在其他類中訪問它們,而無需引用實例。 '__get(),__set()和__call'似乎是要走的路(?),但我無法想出一個辦法。 – Blake