通过类访问变量

时间:2011-03-13 16:43:17

标签: php oop class variables

因此,假设我有一个核心程序类,它实例化一个Page对象。

Page对象具有属性$id(这是我们当前所在页面的页面ID)。

Page类中,它在数据库中查找并通过实例化Template对象为页面设置模板。

在这个Template对象中,我想放入一个内容块。这由我在Content类中实现的Template类处理。

现在,要使此内容正常工作,我需要能够从程序核心所拥有的$id对象中获取Page。有没有办法做到这一点?通过页面ID似乎相当繁琐,特别是当它到达它时,类之间可能有10层?

如果我将$ id变量设为静态(static $id;),那么我可以使用Page::$id再次获取它而不必访问我设置它的对象的实际实例吗?

谢谢

汤姆

1 个答案:

答案 0 :(得分:2)

您所追求的内容通常由“dependency injection”处理。在模板构造函数中创建Page对象时,传递像Template对象这样的对象是很常见的。 Page对象本身可以是Template的属性,也可以只是其$ id属性。因此,没有必要在每个函数调用中传入id。

Template::__construct($Page)

如果Template类与Page类相关,它还可以扩展Page类,如果该属性为Page::$idprotected,它就可以访问public