Lars: Was macht $this?

Tach,

ich sehe in vielen PHP Skripten die Variable $this, die scheinbar zu PHP gehört, aber ich finde nirgendwo eine Beschreibung wozu die gut ist.
Kann mir vielleicht jemand anschaulich und verständlich erklären was diese Variable macht, wwozu sie gut ist und wann man sie verwenden sollte?

Danke euer Lars

  1. Hallo,

    ich sehe in vielen PHP Skripten die Variable $this [...]

    Das ist wohl im Zusammenhang mit Klassen und Objekten.
    http://www.dclp-faq.de/ch/ch-objects.html
    http://www.php.net/manual/de/language.oop.php
    http://www.php.net/manual/de/ref.classobj.php

    HTH, Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. 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?

      1. 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)