RückgabewerteSie können Werte mit der optionalen return-Anweisung zurückgeben. Es können Variablen jeden Typs zurückgegeben werden, auch Arrays oder Objekte. Dies beendet sofort die Funktion und die Kontrolle wird wieder an die aufrufende Zeile zurückgegeben. Weitere Informationen finden Sie unter return.
Einsatz von return
Beispiel #1 Einsatz von return
<?phpEs ist nicht möglich, mehrere Werte von einer Funktion zurückzugeben. Ein ähnliches Resultat kann man aber durch die Rückgabe eines Arrays erreichen.
Beispiel #2 Rückgabe mehrerer Werte als Array
<?phpUm von einer Funktion eine Referenz zurückzugeben, müssen Sie den Referenz-Operator & sowohl in der Funktionsdeklaration, als auch bei der Zuweisung des zurückgegebenen Wertes verwenden:
Beispiel #3 Rückgabe von Referenzen aus Funktionen
<?phpWeitere Informationen über Referenzen finden Sie im Kapitel Referenzen in PHP. Rückgabe-TypdeklarationenPHP 7 führt die Unterstützung von Rückgabe-Typdeklarationen ein. Ähnlich wie Parameter-Typdeklarationen geben Rückgabe-Typdeklarationen den Typ des Wertes, der von einer Funktion zurückgegeben wird, an. Die gleichen Typen, die für Parameter-Typdeklarationen verfügbar sind, sind auch für Rückgabe-Typdeklarationen erlaubt. Strenge Typsierung hat ebenfalls Auswirkungen auf Rückgabe-Typdeklarationen. Im normalen schwachen Typisierungsmodus werden zurückgegebene Werte in den korrekten Typ konvertiert, wenn sie nicht bereits diesen Typ haben. Im strengen Modus muss der zurückgegebene Wert den korrekten Typ haben; andernfalls wird ein TypeError ausgelöst.
BeispieleBeispiel #4 Grundlegende Rückgabe-Typdeklaration
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe: float(3) Beispiel #5 Einsatz des strengen Typisierungsmodus
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe:
int(3)
Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
thrown in - on line 5
Beispiel #6 Rückgabe eines Objekts
<?phpDas oben gezeigte Beispiel erzeugt folgende Ausgabe:
object(C)#1 (0) {
}
|