有没有办法从方法中获取实际的调用对象?
例如,我有一个场景,我会这样做:
$user = new User;
$user->setName('name');
$user->save($user);
不是将$ user传递给save方法,而是让它获取调用对象信息会很好。
我知道我可以做get_called_class()
但是这不会返回实际对象的数据。我也在看PHP的Reflection类,但没有看到任何完全正确的。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
在您的对象中(因此在save
函数本身内,您可以使用$this
关键字来访问对象本身。或者......
public static function getInstance() {
if(!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
instance
将成为私有成员变量。确保您的构造函数是私有的,以便您的对象无法在外部实例化。 < ---所有这一切都假设是php5。
答案 1 :(得分:-2)
我认为你可以自我>保存($ this),如果save是一个类方法,或者只是保存($ this)如果save是一个实例方法。
无论如何,重点是$ this指的是当前实例。因此setName作用于用户的实例,因此$ this应该等于setName内的用户。