Variablenname eines Objektes ermitteln

Von: , Frage gestellt am Do, 26. Feb 2009

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

3 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Variablenname eines Objektes ermitteln

    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Б

    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: Variablenname eines Objektes ermitteln

      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

  2. Antwort von nach 3 Stunden 0 hilfreich
    Re: Variablenname eines Objektes ermitteln

    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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!