获取调用其方法之一的对象的名称

时间:2011-06-16 16:59:44

标签: php oop

是否可以获取调用其方法之一的对象的名称。

情形:

我有A类。我实例化该类的2个对象。如果一个对象调用一个方法,是否可以检索调用它的对象的名称?

编辑:

class Property() {
   public function __call($name, $atts) {
      if ($name === 'foo') {
         //I want to differ Between Color and Position
      }
   }
}

$Color = new Property();
$Position = new Property();

$Color->foo();
$Position->foo();

2 个答案:

答案 0 :(得分:2)

为对象添加名称元素:

class ObJA {
    $this->name;
    function __construct($name){
         $this->name = $name;
    }

    function getName(){ return $this->name;  }
}

在对象创建:

$a = new ObJA('a');
$b = new ObJA('is b');

echo $a->getName(); //`a`
echo $b->getName(); //`is b`

答案 1 :(得分:0)

您始终可以使用get_class(),但只需创建对象的两个或多个实例,名称就不会改变。 Neal's solution会起作用,但它实际上并没有改变类的名称,并提出了一个问题:为什么需要它?