PHP获取方法上的调用对象

时间:2012-01-28 17:26:57

标签: php

有没有办法从方法中获取实际的调用对象?

例如,我有一个场景,我会这样做:

$user = new User;
$user->setName('name');
$user->save($user);

不是将$ user传递给save方法,而是让它获取调用对象信息会很好。

我知道我可以做get_called_class()但是这不会返回实际对象的数据。我也在看PHP的Reflection类,但没有看到任何完全正确的。

有什么想法吗?

谢谢!

2 个答案:

答案 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内的用户。