de.comp.lang.php.* FAQ

10.3. Was ist $this?

Keywords: Klasse | Objekt | this | Name | Funktion

Antwort von Kristian Köhntopp

Innerhalb einer Funktion wie connect() muss auf die Variable Link_ID zugegriffen werden, um das Resultat eines Connect abzuspeichern. In connect() können wir nicht wissen, wie die Funktion nun gerade heißt, also ob ihr Name nun gerade $db1->connect() oder $db2->connect() ist und ob die Link-ID nun in $db1->Link_ID oder in $db2->Link_ID abgespeichert werden muss.

Eigentlich ist das auch egal: Wir wollen ja nur auf unsere eigene Link-ID zugreifen. $this bezeichnet nun genau unser eigenes Objekt, also $db1 innerhalb von $db1 und $db2 innerhalb von $db2. Man schreibt daher code wie

class DB_MiniSQL {
  var $Link_ID = 0;

  function connect() {
    $this->Link_ID = mysql_connect(...);
    ...
  }

  ...
}

oder

class DB_MiniSQL {
  var $Link_ID = 0;

  function query($query) {
    // Wenn kein Datenbank-Link vorhanden ist, eines herstellen.
    if (!$this->Link_ID)
      $this->connect();

    ...
   }
  ...
}

Valid HTML 4.01! Valid CSS!

10.3. Was ist $this?
http://www.php-faq.de/q/q-klassen-this.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team