Rückgabetypdeklarationen
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy. Lektion 66 von 71.
So wie du Typen für Parameter deklarieren kannst, kannst du auch angeben, welchen Typ eine Funktion zurückgeben soll. Rückgabetypdeklarationen teilen PHP genau mit, welche Art von Wert deine Funktion zurückgeben wird, und helfen dabei, Fehler zu erkennen, wenn eine Funktion versehentlich den falschen Typ zurückgibt.
Um einen Rückgabetyp hinzuzufügen, setze nach der schließenden Klammer der Parameterliste einen Doppelpunkt, gefolgt vom Typ:
<?php
function add(int $a, int $b): int {
return $a + $b;
}
echo add(5, 3);
?>Dies gibt 8 aus. Das : int nach den Klammern deklariert, dass diese Funktion eine Ganzzahl zurückgeben muss. Wenn du stattdessen versucht hast, eine Zeichenkette zurückzugeben, würde PHP einen Fehler erzeugen.
Du kannst dieselben Typen wie bei Parameterdeklarationen verwenden: int, float, string, bool und array. Außerdem gibt es einen speziellen Typ namens void für Funktionen, die nichts zurückgeben:
<?php
function sayHello(string $name): void {
echo "Hello, $name!\n";
}
sayHello("Alice");
?>Eine void-Funktion darf keine return-Anweisung mit einem Wert enthalten. Die Kombination von Parametertypen und Rückgabetypen macht deine Funktionen selbstdokumentierend: Jeder, der den Code liest, weiß sofort, was hineingeht und was herauskommt.
Aufgabe
EinfachLies zwei Eingabezeilen ein:
- Einen Preis als Dezimalzahl (z. B.
49.99) - Einen Rabattprozentsatz als ganze Zahl (z. B.
20)
Erstelle eine Funktion namens calculateFinalPrice, die zwei Parameter mit Typdeklarationen akzeptiert:
$pricealsfloat$discountPercentalsint
Die Funktion muss eine Rückgabetypdeklaration von float haben und sollte den Endpreis nach Anwendung des Rabatts zurückgeben.
Rufe die Funktion mit den Eingabewerten auf und gib das zurückgegebene Ergebnis aus.
Beispiel 1:
Wenn die Eingaben 100.00 und 25 sind, sollte die Ausgabe wie folgt aussehen:
75Beispiel 2:
Wenn die Eingaben 49.99 und 10 sind, sollte die Ausgabe wie folgt aussehen:
44.991Beispiel 3:
Wenn die Eingaben 200.50 und 50 sind, sollte die Ausgabe wie folgt aussehen:
100.25Probier es selbst
<?php
// Eingabe lesen
$price = floatval(fgets(STDIN));
$discountPercent = intval(fgets(STDIN));
// TODO: Erstelle eine Funktion namens calculateFinalPrice mit:
// - Parameter $price mit float-Typdeklaration
// - Parameter $discountPercent mit int-Typdeklaration
// - Rückgabetypdeklaration von float
// Die Funktion soll den Endpreis nach Anwendung des Rabatts zurückgeben
// Rufe die Funktion auf und gib das Ergebnis aus
echo calculateFinalPrice($price, $discountPercent);
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler