2011-06-16 47 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將工作,但它並沒有真正改變班級的名字,並提出了問題:你爲什麼需要它?