5.2.2 Ergebnisse eines Methodenaufrufs verarbeiten
Vorab eine Anmerkung: bei Funktionen (also nicht objektorientiert) sah es wie folgt aus.
Bisher haben wir eine Methode und deren Variablen immer in einer Zeile geschrieben.
Wenn die Zeile aber zu lang wird, dann gibt es eine Schreibregel für einen Zeilenumbruch. Wir ändern also am Sourcecode nichts, nur schreiben wir dies anders hin.
$newPhoneNumber
und $name
sind also weiterhin die Variablen, deren Inhalte an die Methode übergeben werden.
Es gibt drei unterschiedliche Möglichkeiten, mit den Ergebnissen eines Methodenaufrufs im Hauptprogramm zu arbeiten.
1. Speichern im Objekt (in einer Eigenschaft)
Beispiel
Ausgabe:
Methode aufrufen
Eigenschaften auslesen
Im Objekt gespeicherte Daten von Max: 0170123456
In diesem Beispiel übergibt die Methode changePhoneNumber()
keine Werte an das Hauptprogramm, sondern speichert diese in der Eigenschaft $phoneNumber
des Objekts $max
. Somit kann das Hauptprogramm auf die Eigenschaft zugreifen und den Wert hieraus lesen (siehe Zeile 22).
Bitte beachten Sie:
- In Zeile 4 haben wir
$name
als Eigenschaft der Klasse definiert, die an jeder Stelle in der Klasse mit$this->name
ausgelesen oder verändert werden kann. - In Zeile 8 haben wir eine Variable
$name
, die nur innerhalb der Methode gültig ist.
Beide $name
haben nichts gemeinsam außer dem Namen "name"!
Erst in Zeile 11 wird der Wert der Variable $name
nun an die Eigenschaft $name
übergeben, auf die in der Methode wie beschrieben mit $this->name
angesprochen wird.
2. Rückgabe mit return
Beispiel
Mit return
wird ein Ergebnis aus einer Methode an das Hauptprogramm gegeben.
Ausgabe:
Methode aufrufen und return-Wert in $data speichern
Mit return zurückgegebenen Tel.-Nr.: 0170123456
Möchte man mehrere Daten aus einer Methode an das Hauptprogramm mit return
übergeben, so kann man die Daten in der Methode in ein Array schreiben und das Array übergeben.
3. Direkt eine Ausgabe mit echo
erzeugen
Beispiel
Auch die direkte Ausgabe aus der Methode ist prinzipiell denkbar.
Ausgabe:
Methode aufrufen
Ausgabe erfolgt in der Methode
Max: 0170123456
Dieses 3. Beispiel ist "absolut unschön". Das Problem dabei ist, dass ein Teil der Ausgabe im Hauptprogramm erfolgt und ein anderer Teil in der Methode. Außerdem ist in der Methode die Verarbeitung (Daten in Eigenschaften füllen) und die Datenausgabe vermischt. Eventuell ist die Ausgabe zum jetzigen Zeitpunkt noch gar nicht erwünscht oder das Format soll erst später festgelegt werden, daher sollte eine Ausgabe nicht in den Methoden stattfinden.
Methodenname zuvor in einer Variablen speichern
Beispiel
Es gibt Situationen, in denen zuvor der Methodenname in einer Variablen gespeichert wird. Schauen Sie sich den Sourcecode genau an, denn diese Art des Aufrufs benötigen wir später noch. Die Klasse ist wie im 2. Beispiel geschrieben und wir haben nur eine kleine Änderung im Hauptprogramm vorgenommen (Zeile 26 und Zeile 28).
Ausgabe:
Methode aufrufen und return-Wert in $data speichern
Mit return zurückgegebenen Tel.-Nr.: 0170123456
Der Namen ist: Max
Eigenschaft $name zuvor in einer Variablen speichern
Der Namen ist: Max
Wir haben also gezeigt, wie ein Objekt eine Variable zum Aufruf einer Methode (siehe Zeile 28) oder einer Eigenschaft (siehe Zeilen 37) nutzen kann.
In den Zeilen 26 und 35 sind die geschweiften Klammern nicht zwingend notwendig. Diese Klammern sollten Sie aber unbedingt zur besseren Lesbarkeit verwenden, denn so wird eindeutig klar, dass man eine Variable in den geschweiften Klammern hat.