PHP类属性/方法同步

时间:2011-12-02 09:30:15

标签: php inheritance object extends

修订 - 我有多个跨文件的类定义(每个文件一个类)。我想要做的就是这个;我有一个名为Master的类,我创建了一个实例,然后Master对象创建了我定义的其余类的实例。 Master已在其中定义了所有属性。

Master创建的实例中,我希望能够直接从Master$this使用$this->methodInMaster的属性/方法,而无需传递Master是新实例的对象,存储它并调用$this->MasterInstance->methodinMaster。有没有办法实现这个目标?

extends关键字在这里根本没有帮助我; Master创建实例的类将继承Master的属性和方法,但这些实例对Master的属性所做的任何更改都不会在Master中“保存” object,只是进行更改的对象。换句话说,更改在任何其他类中都不可见。

我认为这是一个限制,不会让事情变得静止,所以没有'实例',但有没有办法使用call, setget魔术方法解决所有这些问题?< / p>

1 个答案:

答案 0 :(得分:1)

扩展对您没有帮助,因为它不是您所需要的:如果您想要一个可被多个实例访问的单个对象,您需要Singleton 是静态的,因为替代方案是有一些不切实际的共享单一参考的形式)。对于你想要的结构,你需要一个与Master类不同的Singleton,但它可以被它访问。基本上你的工作流程将是:

  • 在单身人士中实施您的功能
  • 访问Master
  • 方法中的单例
  • 像往常一样延长大师

这样,子类中的每个调用都将被透明地“重定向”到对单例的调用。这样做并不是很优雅(而不是直接访问子类中的单例),但它应该适用于您的设计。