【发布时间】:2015-02-10 03:49:15
【问题描述】:
我有 2 个类:用户和路由器
在我的脚本中,首先实例化 User 类来设置用户数据,然后实例化 Router 类来设置页面数据。
$user = new User();
$router = new Router();
在Router 的一个方法中,我需要调用$user->getSuperPrivileges()。该函数查询数据库并在 $user 对象中设置额外的参数,然后返回它们。
我可以将 $user 作为 Router($user) 的参数传递,并将其保存为构造函数中的属性,但我相信这只会创建真实对象的克隆。问题在于 $this->user->getSuperPrivileges() 设置的值只能由克隆访问,而不能在全局脚本中由真实对象访问。换句话说,我需要在真实对象中再次调用 getSuperPrivileges() 方法来重新设置这些属性,这会适得其反。
实现我想要的最佳方式是什么(从 $router 内部访问真实对象 $user 及其方法,而无需创建作为传递的克隆一个函数参数)?
【问题讨论】:
-
仅在路由器中使用 $user - 这意味着您将始终通过 $router->user 调用 $user
-
but I believe this would only create a clone of the real object不,那不会。到处都是同一个对象 -
只是想补充一点,路由器需要了解用户的信息听起来很可疑。听起来这个逻辑可能需要在另一个类中,这取决于你在做什么。