Funktionen ab PHP 7
PHP 7 bietet bei Funktionen weitere Möglichkeiten. Bisher hat man seine Funktion einfach definiert und Werte übergeben.
function berechnung($a, $b) { …
Hier erfolgte keine Berücksichtigung, um welchen skalare Variablentype es sich handeln soll. Skalare Variablen sind Variablen, die nur einen einzelnen Wert speichern können.
Mit PHP 7 können wir nun für eine Funktion festlegen, welcher Typ erwartet wird. Zur Verfügung stehen:
- string
- int
- float
- bool
Unser erstes Beispiel soll mit Ganzzahlen arbeiten, also legen wir als Variablentyp int
für die Funktion fest:
function berechnung(int $a, int $b) { …
Soll unsere Funktion mit Nachkommazahlen rechnen und entsprechende Werte übergeben bekommen können, legen wir das im Funktionskopf fest:
function berechnung(float $a, float $b) { …
Was passiert nun, wenn anstelle von Ganzzahlen (int) nun Nachkommazahlen (float) übergeben werden?
Schauen wir uns folgendes Beispiel an:
function berechnung(int $a, int $b) {
echo $a+$b;
}
berechnung( 2.3, 2.7 );
Als Ergebnis erhalten wir 4
- also Bereits im Funktionskopf werden die Nachkommawerte abgetrennt und jeweils mit 2 weitergerechnet.
Spannender wird, was bei einer Übergabe von einem String passiert:
function berechnung(int $a, int $b) {
echo "In der Funktion: ". gettype($b);
echo "<br>";
echo $a+$b;
}
$wert = "2.7";
echo "Vor Funktionsaufruf: ". gettype($wert);
echo "<br>";
berechnung( 2.3, $wert );
Als Rückgabe erhalten wir:
Vor Funktionsaufruf: string
In der Funktion: integer
4
Es geschieht also automatisch ein Umwandeln der Variablentypen – das sogenannte „casting“.
Art der Rückgabewerte in Funktionen deklarieren ab PHP 7
Genauso wie wir die Datentypen, die wir in die Funktion übergeben, ab PHP 7 festlegen können, können die Rückgabe-Datentypen festgelegt werden.
Zurück zu unserem einfachen Beispiel, das 2 Werte zusammenrechnet und das Ergebnis zurückgibt:
function berechnung(float $a, float $b): float { …
Hier sieht man am Aufbau, dass nach der runden Klammer im Funktionskopf nun getrennt durch einen Doppelpunkt der Rückgabe-Datentyp festlegt wird. In unserem Beispiel wird eine Nachkommazahl also als Ergebnis aus der Funktion geliefert.
Hier kann auch Beispielsweise ein Array rückgeliefert werden:
function berechnung(float $a, float $b): array { …
Diese Möglichkeiten macht PHP ab der Version 7 sicherer und den Code zum Lesen verständlicher.
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: