Hallo Harry,
Damit kommt das Objekt ja aber nicht an seinen eigenen Namen heran, denn wenn mehrere Instanzen der Klasse existieren, kann das Objekt selbst ja nicht unterscheiden, welche der zur Auswahl stehenden Instanzen es denn nun ist. Wenn nur eine Instanz existieren würde hätte ich das Problem ja nicht.
wenn du eine Methode des Objektes selbst aufrufst, so kannst du das Objekt mit $this referenzieren. Für einen Bezug auf sich selbst brauchst du den Instanznamen nicht.
Für alle anderen Fälle kannst du $this auch anwenden.
Beispiel:
class Hyperlink {
function Hyperlink($t) {
$this->t=$t;
}
function r($arr) {
if (is_array($arr)) {
for ($i=0;$i<count($arr);$i++)
if ($GLOBALS[$arr[$i]] !== $this) echo $arr[$i];
} }
}
Ich habe hier eine Eigenschaft t definiert zur Unterscheidung der Instanzen und eine Methode r zur Verarbeitung. Hier vergleiche ich die Liste der Instanzen mit dem Objekt selbst. Sind diese verschieden, so wird der Instanzname ausgegeben.
$myClass=new Hyperlink(0);
$myClass2=new Hyperlink(1);
$myClass->r(instance_exists("Hyperlink"));
Dies funktioniert solange, wie Instanzen mit verschiedenen Eigenschaften existieren. Sind beide Instanzen vollständig identisch, werden sie nicht als verschieden betrachtet.
Viele Grüße
Antje