Folien



(letzte Synchronisation der PDF-Präsentation: 02.08.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Werte an eine Methode übergeben und verarbeiten

Methoden können Parameter anbieten, über die Werte an die Methode übergeben werden können (vgl. Kap. Funktionen in PHP).

PHP-Code
  function nameAendern($neuerName) { $name = $neuerName; }  

oder mit zwei Werten:

PHP-Code
  function multiplizieren($a, $b) { $ergebnis = $a * $b; }  

Wenn wir in einer Klasse eine Methode definieren, unterscheidet sich das Berechnungsergebnis u.U. für die einzelne Objekte. Deshalb verwenden wir $this:

PHP-Code
  function kontoStandErhoehen($alterKontostand, $einzahlungsbetrag) { $this->neuerKontostand = $alterKontostand + $einzahlungsbetrag; }  

Damit werden zur Laufzeit die Werte für $alterKontostand und $einzahlungsbetrag durch Aufrufen der Methode übergeben und für das aktuelle Objekt berechnet. Es gibt keinen “neuen Kontostand” ohne ein zugehöriges Objekt “kontoX”, deshalb muss ein “neuer Kontostand” immer zu einem neuen Objekt gehören (z.B. $objekt1->neuerKontostand oder $objekt2->neuerKontostand). Außerdem bleibt so der Wert für $objekt->neuerKontostand gespeichert, auch wenn die Methode erneut aufgerufen wird.

Werte ausgeben

Methoden führen Anweisungen aus, die i.d.R. als Ergebnis einen Wert/Werte haben (z.B. Berechnungsergebnis: $ergebnis = $a + $b). Die Ausgabe dieser Werte kann auf drei Arten erfolgen:

1) Direkte Ausgabe der Werte

Über einen Befehle wie echo oder print wird der Wert direkt ausgegeben (kann dann aber nicht zu weiteren Verarbeitungen benutzt werden).

2) Speichern der Werte in Attributen

Der Wert wird in einem Attribut des Objekts gespeichert (wie im Beispiel oben $this->neuerKontostand) und kann dann von anderen Klassen, Objekten … entsprechend weiterverarbeitet werden (z.B. als $kunde1->neuerKontostand).

Um einem Objektattribut einen Wert zuzuweisen schreiben wir:

PHP-Code
  $objekt->einAttribut = 'EinWert';  

Um den Wert abzufragen:

PHP-Code
  $aktuellerWert = $variable->eineEigenschaft;  

3) Rückgabewert der Methode definieren

Die Rückgabe erfolgt mit dem Schlüsselwort return. Damit wird die Methode zu einer Funktion, deren Wert das Ergebnis der Berechnung ist.

PHP-Code
  function addieren($a, $b) { $this->ergebnis = $a + $b; return $this->ergebnis; }  

Den Rückgabewert einer Methode weisen wir also durch folgende Anweisung einer Variablen zu:

PHP-Code
  $rueckgabeWert = $variable->eineMethodeDieEtwasZurueckgibt();  

Lokale und globale Variablen

Variablen, die innerhalb einer Methode definiert werden und nur dort (z.B. zur Zwischenspeicherung der Ergebnisse einzelner Berechnungsschritte) verwendet werden, bezeichnet man als lokale Variablen bzw. Attribute.

Variablen, die von einer Klasse definiert werden und sowohl außerhalb als auch innerhalb einer Klassenmethode gültig sind, heißen globale Variablen/Attribute.

Diese Unterscheidung ist wichtig, weil auf lokale Variablen einer Klassenmethode u.U. nicht von außen zugegriffen werden kann.

PHP-Code
  class Kunde { // Globale Attribute public $kontostand = 100; public $zinssatz = 0.035;   function zinsenAddieren() { // $zinsbetrag ist eine lokale Variable, die nur temporär zur Speicherung eines Zwischenergebnisses innerhalb der Methode benutzt wird $zinsbetrag = $this->kontostand * $this->zinssatz; return $this->kontostand + $zinsbetrag; } }  

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: PHP/OOP - Kommunikation mit Methoden *****

PHP/OOP_5-1: Werte an eine Methode übergeben

Schreiben Sie eine Klasse “Auto”, die folgende Methoden enthält:
• geschwindigkeitSetzen()
• farbeAendern()


Beim Aufruf der Methoden soll der jeweils neue Wert für Geschwindigkeit bzw. für Farbe an die Methode übergeben werden und die entsprechende Änderung vorgenommen werden. Die Ausgabe der Werte erfolgt nach Ihrem Belieben.




PHP/OOP_5-2: Werte übergeben und ausgeben

Gegeben sei folgendes Skript:

PHP-Code
class Kunde { private $kundenNummer;   public function setKundenNummer($kNummer) { $this->kundenNummer = $kNummer; }   public function getKundenNummer() { // METHODE HIER DEFINIEREN (Ausgabe der Kundennummer) } }   $kunde = new Kunde;   // HIER ANWEISUNG FORMULIEREN (Kundennummer auf 32 setzen)   echo "Kundennummer ist " . $kunde->getKundenNummer();  


Schreiben Sie eine Methode getKundenNummer(), mit der der Wert der (private!) Variablen $kundenNUmmer abgerufen werden kann. Setzen Sie außerdem die Kundennummer auf den Wert 32.