2011-06-16 107 views
0

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

场景:

我有类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(); 
+1

你期望对象的名称是什么? – Gordon 2011-06-16 17:04:40

回答

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` 
+0

我也有这个想法,但我认为可能有另一种方法,但我还没有发现。 – mightyplow 2011-06-16 17:12:23

+0

我不认为会有... – Neal 2011-06-16 17:13:23

0

您可以随时使用get_class(),但名称不只需创建两个或更多对象实例即可进行更改。 Neal's solution将工作,但它并没有真正改变班级的名字,并提出了问题:你为什么需要它?