PHP-Funktionen: Unterschied zwischen den Versionen

Aus Vokabulabor
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „* Kategorie:Tutorial * Kategorie:Programmierung * Kategorie:PHP = Links = * PHP * PHP-Funktionen * PHP-Anweisungen * PHP-Klassen = Erläuterung = * Berechnungen können in Funktionen gebündelt werden. Das erhöht die Übersicht und die Wiederverwertbarkeit. * PHP-Funktionen funktionieren wie mathematische Funktionen: <syntaxhighlight lang="php"> <?php function sum($a, $b){ $rc = $a + $b; return $rc; } echo sum(1237.99,…“)
 
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
* [[PHP-Funktionen]]
* [[PHP-Funktionen]]
* [[PHP-Anweisungen]]
* [[PHP-Anweisungen]]
* [[PHP-Arrays]]
* [[PHP-Klassen]]
* [[PHP-Klassen]]


Zeile 14: Zeile 15:
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
<?php
<?php
function sum($a, $b){
function sum(float $a, float $b): float{
   $rc = $a + $b;  
   $rc = $a + $b;  
   return $rc;
   return $rc;
}
}
echo sum(1237.99, 4399.5);
echo sum(1237.99, 4399.5), "\n";
echo "\n";
</syntaxhighlight>
</syntaxhighlight>
* Die Funktion hat den Namen '''sum'''.
* Die Funktion hat den Namen '''sum'''.
* Es gibt zwei '''Parameter''', die der Funktion mitteilen, was summiert werden soll.
* Es gibt zwei '''Parameter''', die der Funktion mitteilen, was summiert werden soll.
** Optional kann vor dem Parameter der Datentyp des Parameters angegeben werden, hier: <code>float $a</code>
* Optional kann nach der ')' der Datentyp des Rückgabewertes angegeben werden, hier: <code>float</code>
* Danach folgt immer ein Blockanfang '{', der am Ende der Funktion mit '}' geschlossen wird.
* Es wird der Wert der Parameter addiert und der Variable $rc zugewiesen.
* Es wird der Wert der Parameter addiert und der Variable $rc zugewiesen.
* Das Ergebnis wird dann mit dem Schlüsselwort '''return'' "abgeliefert.
* Das Ergebnis wird dann mit dem Schlüsselwort '''return''' "abgeliefert".
* Mit dem ersten echo wird durch "Aufruf" der Funktion die Summe von 1237.99 und 4399.5 berechnet und diese ausgegeben.
* Mit dem ersten echo wird durch "Aufruf" der Funktion die Summe von 1237.99 und 4399.5 berechnet und diese ausgegeben.
* Mit dem zweiten echo wird ein Zeilenwechsel ausgegeben.


== Parameter ==
== Parameter ==
Zeile 43: Zeile 45:
Das geht besser: Wir definieren eine Funktion:
Das geht besser: Wir definieren eine Funktion:
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
function brutto($netto){
function brutto(float $netto){
   return $netto * 1.19;
   return $netto * 1.19;
}
$nettoChair = 37.44;
$nettoTable = 99.22;
echo "Stuhl: ", brutto($nettoChair), " Tisch: ", brutto($nettoTable), "\n";
</syntaxhighlight>
Wenn wir den Bruttopreis brauchen, dann schreiben wir: <code>brutto($nettoChair) ... brutto($nettoTable)...</code>.
Bei einer Steueränderung müssen wir nur die Funktion brutto() ändern.
== Funktion in Funktion verwenden ==
* Wir wollen eine Funktion, die die Summe von 4 Summanden ermittelt.
* Wir habe schon eine Funktion, die die Summe von 2 Summanden berechnet: siehe oben.
* Du Summe von 4 ist die Summe von den 2 ersten Summanden + die Summe von den 2 letzten Summen.
<syntaxhighlight lang="php">
function sum2(float $a, float $b): float{
  return $a + $b;
}
function sum4(float $a, float $b, float $c, float $d): float{
  $s1 = sum2($a, $b);
  $s2 = sum2($c, $d);
  $rc = sum2($s1, $s2);
  return $rc;
}
echo "Summe 12..15: ", sum4(12, 13, 14, 15),  "\n";
</syntaxhighlight>
* Noch eleganter ist die Zusammenfassung:
<syntaxhighlight lang="php">
function sum4(float $a, $float $b, float $c, $float $d){
  $rc = sum2(sum2($a, $b), sum2($c, $d));
  return $rc;
}
}
</syntaxhighlight>
</syntaxhighlight>
Wenn wir den Bruttopreis brauchen, dann schreiben wir: <code>$priceChair = brutto($nettoChair); $priceTable = brutto($nettoTable); ...</code>.
Bei einer Steueränderung müssen wir nur die Funktion brutto ändern.


== Aufgaben ==
== Aufgaben ==
Definiere nach diesem Schema weitere Funktionen:
Definiere nach diesem Schema weitere Funktionen:
* eine Funktion, die den Durchnitt von 2 Werten berechnet (Summe geteilt durch 2).
* eine Funktion, die den Durchnitt von 3 Werten berechnet.
* eine Funktion, die das Volumen einer Kugel berechnet. Die Formel lautet: Volumen einer Kugel mit Radius ist 4/3*pi*r³.
* eine Funktion, die das Volumen einer Kugel berechnet. Die Formel lautet: Volumen einer Kugel mit Radius ist 4/3*pi*r³.
* eine Funktion, die die Oberfläche einer Kugel berechnet: Oberfläche einer Kugel mit Radius r ist 4*pi*r².
* eine Funktion, die die Oberfläche einer Kugel berechnet: Oberfläche einer Kugel mit Radius r ist 4*pi*r².
* eine Funktion, die mittels Satz von Pythagoras die Hypothenuse eines rechtwinkligen Dreiecks berechnet. Verwende dazu die eingebaute Funktion sqrt(float $x): float, die die Quadratwurzel einer Zahl $x berechnet.
** Anderst: Berechne aus den Seite a und b die Seite c, mit der Formel c = sqrt(a² + b²)

Aktuelle Version vom 29. Oktober 2023, 08:08 Uhr

Links

Erläuterung

  • Berechnungen können in Funktionen gebündelt werden. Das erhöht die Übersicht und die Wiederverwertbarkeit.
  • PHP-Funktionen funktionieren wie mathematische Funktionen:
<?php
function sum(float $a, float $b): float{
  $rc = $a + $b; 
  return $rc;
}
echo sum(1237.99, 4399.5), "\n";
  • Die Funktion hat den Namen sum.
  • Es gibt zwei Parameter, die der Funktion mitteilen, was summiert werden soll.
    • Optional kann vor dem Parameter der Datentyp des Parameters angegeben werden, hier: float $a
  • Optional kann nach der ')' der Datentyp des Rückgabewertes angegeben werden, hier: float
  • Danach folgt immer ein Blockanfang '{', der am Ende der Funktion mit '}' geschlossen wird.
  • Es wird der Wert der Parameter addiert und der Variable $rc zugewiesen.
  • Das Ergebnis wird dann mit dem Schlüsselwort return "abgeliefert".
  • Mit dem ersten echo wird durch "Aufruf" der Funktion die Summe von 1237.99 und 4399.5 berechnet und diese ausgegeben.

Parameter

  • Parameter sind spezielle Variablen. Der Unterschied zu "normalen" Variablen: Sie bekommen ihren Wert beim Aufruf der Funktion.
  • Im Beispiel hat die Funktion sum zwei Parameter $a und $b.
  • Beim Aufruf sum(1237.99, 4399.5) passiert folgendes: $a = 1237.99; $b = 4399.5.
  • Dann wird der Funktionsrumpf abgearbeitet: $rc = $a + $b; return $rc;
  • echo bekommt damit den Wert 5637.49.

Wiederverwertbarkeit

Ziel sollte es immer sein: ein Programm sollte den Code für eine "Berechnung" nur genau einmal enthalten.

Beispiel: Ein Programm arbeitet mit Bruttopreisen, die aus Nettopreis und Mehrwertsteuer bestehen. Die Berechnung ist immer gleich: $brutto = $netto * 1.19;. Wenn sich die Mehrwertsteuer ändert, dann müssen alle Stellen mit dieser Berechnung geändert werden.

Das geht besser: Wir definieren eine Funktion:

function brutto(float $netto){
  return $netto * 1.19;
}
$nettoChair = 37.44;
$nettoTable = 99.22;
echo "Stuhl: ", brutto($nettoChair), " Tisch: ", brutto($nettoTable), "\n";

Wenn wir den Bruttopreis brauchen, dann schreiben wir: brutto($nettoChair) ... brutto($nettoTable).... Bei einer Steueränderung müssen wir nur die Funktion brutto() ändern.

Funktion in Funktion verwenden

  • Wir wollen eine Funktion, die die Summe von 4 Summanden ermittelt.
  • Wir habe schon eine Funktion, die die Summe von 2 Summanden berechnet: siehe oben.
  • Du Summe von 4 ist die Summe von den 2 ersten Summanden + die Summe von den 2 letzten Summen.
function sum2(float $a, float $b): float{
  return $a + $b;
}
function sum4(float $a, float $b, float $c, float $d): float{
  $s1 = sum2($a, $b);
  $s2 = sum2($c, $d);
  $rc = sum2($s1, $s2);
  return $rc;
}
echo "Summe 12..15: ", sum4(12, 13, 14, 15),  "\n";
  • Noch eleganter ist die Zusammenfassung:
function sum4(float $a, $float $b, float $c, $float $d){
  $rc = sum2(sum2($a, $b), sum2($c, $d));
  return $rc;
}

Aufgaben

Definiere nach diesem Schema weitere Funktionen:

  • eine Funktion, die den Durchnitt von 2 Werten berechnet (Summe geteilt durch 2).
  • eine Funktion, die den Durchnitt von 3 Werten berechnet.
  • eine Funktion, die das Volumen einer Kugel berechnet. Die Formel lautet: Volumen einer Kugel mit Radius ist 4/3*pi*r³.
  • eine Funktion, die die Oberfläche einer Kugel berechnet: Oberfläche einer Kugel mit Radius r ist 4*pi*r².
  • eine Funktion, die mittels Satz von Pythagoras die Hypothenuse eines rechtwinkligen Dreiecks berechnet. Verwende dazu die eingebaute Funktion sqrt(float $x): float, die die Quadratwurzel einer Zahl $x berechnet.
    • Anderst: Berechne aus den Seite a und b die Seite c, mit der Formel c = sqrt(a² + b²)