Sven Rautenberg: Was macht $this?

Beitrag lesen

Moin!

Also wenn ich das jetzt richtig verstanden habe, benutze ich $this um aus einer Funktion einer Klasse, eine Variable einer Klasse aufzurufen.
Stimmt das so in etwa?

Nein.

Innerhalb einer Klasse mein $this die Instanz dieser Klasse.

Mal als Beispiel:

$instanz1 = new Klasse;
$instanz2 = new Klasse;

Instanzen erzeugen.

Von außerhalb der Klasse kannst du auf Eigenschaften und Methoden so zugreifen:

$instanz1->methode1();
$instanz2->methode1();
echo $instanz2->eigenschaft1;

Innerhalb von Methoden der Klasse kannst du mittels $this auf die Eigenschaften und Methoden dieser Instanz zugreifen.

$this->methode1();
$this->eigenschaft1 = 12;

Das ist dasselbe, als wenn du in Instanz $instanz1 jeweils $instanz1->methode1() und $instanz1->eigenschaft1 verwendest, und in $instanz2 jeweils $instanz2->methode1 und $instanz2->eigenschaft1. Programmiert sich nur doof, wenn man solch eine Fallunterscheidung vornehmen müßte, deshalb gibt es $this, das ist immer korrekt für "die Methode oder Eigenschaft der gerade verwendeten Instanz".

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)