Hauptmenü

Untermenü

OOP PHP5 - Grundlagen - Referenzierung

1. new

Damit erzeugt man eine Referenz auf ein Objekt. Dabei handelt es sich um eine Art von Hinweis, den PHP zur Steuerung benötigt. Diese Referenz legt man dann in einer Variablen ab, damit man später darauf zugreifen kann. Ach ja, man kann die entsprechende Klasse ohne Klammern aufrufen, wenn man keine Parameter für den so genannten Konstruktor übergeben möchte. Auf den gehe ich aber später ein.


class Mensch
{
  ...
}
$dieter = new Mensch;
$doerte = new Mensch;

So, damit haben wir zwei Objekte aus der Klasse Mensch erzeugt. Fragt sich nur, wie man auf die Eigenschaften und Methoden zugreifen kann.

2. Die Sache mit den Pfeilen

Nein, hier geht es nicht um die Dinger, mit denen Amor um sich zu schießen pflegt. Auch wenn er in unserem Beispiel bei Dieter wohl getroffen hat. Will ein Objekt auf Methoden oder Eigenschaften "seiner" Klasse zugreifen, so geschieht dies mit ->.


class Mensch
{
  var $geschlecht;
  function pflegHaushalt()
  {
    ...
  }
}
$dieter = new Mensch;
$dieter -> geschlecht 'Mann';
$doerte = new Mensch;
$doerte -> pflegHaushalt();

Was haben wir jetzt getan? Zuerst mal dem Objekt $dieter ein Geschlecht verpasst. Ist bei Männern ja gaaaanz wichtig. Und das Objekt $doerte, dem noch kein Geschlecht zugeordnet wurde, kümmert sich um ihren Haushalt. Mann, bin ich ein Sexist. Darum leiste ich jetzt schon mal Abbitte bei allen Damen, die sich hierhin verirrt haben. Denn es kommt noch schlimmer.

Wichtig

Wenn man auf eine Eigenschaft zugreifen möchte, so darf man nicht mit dem $-Zeichen arbeiten! Das hat einen ganz bestimmten Grund, zu dem ich anschließend komme. Um nun das Konzept zu verstehen, solltet ihr hinter obigen Code mal ein print_r($dieter) setzen. Dann bekommt ihr ein Mensch Object ( [geschlecht] => Mann ) zurückgeliefert. Ihr seht also, dass Dieter ein Objekt vom "Typ" Mensch ist und dessen Eigenschaft geschlecht "Mann" ist. Spielt mal ein wenig mit Dörte herum (nein, nicht so!), dann werdet ihr die möglichen Unterschiede selber kennen lernen.

3. $this

Wenn zum Beispiel eine Klasse auf seine eigenen Eigenschaften und Methoden zugreifen möchte, so wird neben der oben beschriebenen Pfeilnotation noch ein $this benötigt. Dabei handelt es sich genau genommen, um einen Verweis auf das eigene Objekt und dessen Methoden und Eigenschaften. Wenn nun eine Klasse so konzipiert ist, dass man die Eigenschaften eines Objektes über Methoden zuweisen kann, so sieht das zum Beispiel so aus.


class Mensch
{
  var $geschlecht;
  function setzGeschlecht($var)
  {
    $this -> geschlecht $var;
  }
}
$doerte = new Mensch;
$doerte -> setzGeschlecht('Frau');

Jetzt haben wir aus Dörte eine Frau gemacht. Nein! Nicht das, was ihr schon wieder denkt. Über die Methode setzGeschlecht hat das Objekt $doerte seine eigene(!) Eigenschaft geschlecht gesetzt. Und da dies innerhalb der Klasse geschah, wurde das $this benutzt. Es gibt da noch weitere Möglichkeiten, aber die kommen später.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt