Variablenname eines Objektes ermitteln

Hallo PHP Experten

Kann man in PHP5 den Variablenamen eines Objektes mit Hilfe einer Funktion ermitteln ?

Folgendes Beispiel soll das verdeutlichen:

class Object{

function getVariable(){
 $variablename=??????();
 echo('Der Variablenname lautet'. $variablenname);
 }

}
$variable = new Object()
$variable-\>getVariable();

$variable\_2 = new Object()
$variable\_2-\>getVariable();

als Output soll

Der Variablenname lautet variable
Der Variablenname lautet variable_2

erscheinen

Any Idea ?

Gruss LeBon

Hallo

Kann man in PHP5 den Variablenamen eines Objektes mit Hilfe
einer Funktion ermitteln ?

Ich kenne mich in PHP nicht soooo gut aus, daher
sage ich: weiss ich nicht.

Wozu sollte man denn so etwas überhaupt brauchen?
Kannst Du das erklären?

Folgendes Beispiel soll das verdeutlichen:
als Output soll

Der Variablenname lautet variable
Der Variablenname lautet variable_2

Hmmm. Ich weiss nicht genau, wie man eine
Variableninstanz in der Symboltabelle
ihrem aktuellen Symbol wieder zuordnet.

Das habe ich durch herumprobieren gefunden:

class OBJECT {
 
 function get\_name() {
 $vars\_used = Array();
 foreach($GLOBALS as $k=\>$v) 
 if(is\_object($v) && (get\_class($v) == get\_class($this))) 
 $vars\_used[$k] = array\_key\_exists($k,$vars\_used) ? $vars\_used[$k]+1 : 1;

 return join(', ', array\_keys($vars\_used));
 }
 
}

$variable = new OBJECT();
echo "Der Variablenname lautet: " . $variable-\>get\_name() . "\n";

$variable\_2 = new OBJECT();
echo "Der Variablenname lautet: " . $variable\_2-\>get\_name() . "\n";

Grüße

CMБ

Wozu sollte man denn so etwas überhaupt brauchen?
Kannst Du das erklären?

für Debugging kann man das gebrauchen…
Wenn Du die gleiche Klasse mehrmals von verschiedenen Stellen aufrufs und manchmal Fehler erzeugt werden kann es durchaus Sinn machen, dass man sich die Datensätze ausgeben lässt, die die Fehler verursachen um nachzusehen, woran es liegen könnte…

Grüße
Munich

Sehr gute Lösung. Ich habe da eher was in Richtung Reflection Class gedacht, bin aber weder bei php.net noch mit google in dieser Richtung fündig geworden.
Nochmals Danke