簡體   English   中英

PHP類屬性/方法同步

[英]PHP Class Property/Method Synchronization

修訂-我在文件中分布了多個類定義(每個文件一個類)。 我想做的就是這個; 我有一個稱為Master的類,它創建了一個實例,然后Master對象創建了其余已定義類的實例。 Master在其中定義了我所有的屬性。

Master創建的實例中,我希望能夠直接使用$this$this->methodInMaster來使用Master的屬性/方法,而無需將Master的對象傳遞給新實例,存儲它並調用$this->MasterInstance->methodinMaster 有什么辦法可以做到這一點?

extends關鍵字對我完全沒有幫助; 這些類Master創建的實例將繼承屬性和方法的Master這種情況下做出的性質,但是任何的變化Master是在沒有“拯救” Master對象,只是所做的更改的對象。 換句話說,這些更改在任何其他類中都不可見。

我相信這是不能使事物成為靜態的限制,因此沒有“實例”,但是有沒有辦法使用call, setget魔術方法來解決所有這些問題呢?

擴展對您沒有幫助,因為它不是您所需要的:如果您希望單個對象可以被許多實例訪問,則您需要一個Singleton (它必須是靜態的,因為替代品具有某種不切實際的共享單個引用的形式)。 對於所需的結構,您將需要一個與Master類不同的Singleton,但可以通過它訪問它。 基本上,您的工作流程將是:

  • 在單例中實現您的功能
  • 以Master的方法訪問單例
  • 像往常一樣擴展師父

這樣,子類中的每個調用將透明地“重定向”到對單例的調用。 這樣做不是很優雅(與直接訪問子類中的單例相反),但是它應該適合您的設計。

暫無
暫無

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

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