php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Name eines Objekts ausgeben


 
Zumm
01-08-2006, 22:59 
 
Hallo,

folgendes Problem (obwohl die Lösung sicherlich sehr trivial ist, aber ich habe einfach nichts gefunden. Bei dem Thema gibt es auch wenig vielsagende Stichworte):

Ich möchte innerhalb einer Klasse den Namen des Objektes ausgeben, welches eine Instanz dieser Klasse ist. Geht das?


class Klasse {
private $objekt_name;
function get_objekt_name() {
//...
}
}

ein_objekt = new Klasse ();
echo ein_objekt->get_objekt_name();


Die echo-Anweisung in der letzten Zeile soll nun "ein_objekt" ausgeben. Ich brauche dies, damit ich innerhalb der Klasse bestimmte Dateien includen kann, die abhängig von dem Namen des Objekts sind.

Der Gedanke dahinter ist, dass ich weniger Variablen durch den Konstruktor schicken muss. So würde ich dann in diesem Beispiel eine Datei namens ein_objekt_variablen.php includen, in der ich dann verschiedene Variablen deklariert habe.

Vielleicht habt ihr ja auch andere Ideen, wie ich das eleganter lösen könnte?

 
3DMax
02-08-2006, 01:15 
 
den klassennamen bekommst du mit get_class() (http://de2.php.net/manual/de/function.get-class.php) oder wenn das ding abgeleitet ist get_parent_class() (http://de2.php.net/manual/de/function.get-parent-class.php)

bin mir aber gar nicht sicher, ob das überhaupt funktioniert, was du da vor hast.
ich wollte mal dynamisch methoden inkludieren und das ging nicht.

was willst du denn eigentlich für variablen mitgeben?

 
penizillin
02-08-2006, 01:21 
 
Ich brauche dies, damit ich innerhalb der Klasse bestimmte Dateien includen kann, die abhängig von dem Namen des Objekts sind.

Der Gedanke dahinter ist, dass ich weniger Variablen durch den Konstruktor schicken muss. einfacher wäre, du korrigierst deine sichtweise auf die oop und schreibst lieber eine kontrollvariable in den konstruktor rein - sowohl deine nachfolger als auch du selbst (evtl. in vielen monaten) werdet dir dankbar sein, eine übersichtliche kontrolle ohne verletzung des encapsulation-paradigmas eingebaut zu haben.

-archiv-

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:56 Uhr.