【发布时间】:2010-12-04 17:11:52
【问题描述】:
例如,我的应用程序正在使用用户对象的实例,而其他不同的对象必须访问某些属性和方法。并且这些对象实例化了其他对象,这些对象也必须访问 User。管理此问题的最佳方法是什么?当我实例化这些新对象时传递用户对象作为参考?
这是现在如何完成的示例:
类应用{ 私人$用户; 私人$控制器; 公共函数 __construct() { $this->user = new User(); $this->controller = new Controller(); $this->controller->setUser(& $this->user); } }这是正确的做法吗?
编辑:有没有办法让 User 实例成为全局变量?
【问题讨论】:
-
PHP5默认通过引用传递对象,所以不需要显式地这样做
-
查看单例模式。也许它更适合这里。
-
@Paul,这并不完全正确。它按值传递句柄。但是您的建议仍然正确...在函数调用中删除
&。 -
查看我的编辑:将 User 实例设为全局变量会更好吗?
-
@SODA,用户在脚本执行期间是否总是代表相同的数据? (例如,发出请求的用户。)
标签: php object pass-by-reference