Rückgabewerte
Sie 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.
Hinweis:
Wird return ausgelassen, dann wird der Wert
NULL
zurückgegeben.
Einsatz von return
Beispiel #1 Einsatz von return
<?php
function quadrat($zahl)
{
return $zahl * $zahl;
}
echo quadrat(4); // gibt '16' aus.
?>
Es 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
<?php
function kleine_zahlen()
{
return array (0, 1, 2);
}
list ($null, $eins, $zwei) = kleine_zahlen();
?>
Um 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
<?php
function &returniere_referenz()
{
return $einereferenz;
}
$neuereferenz =& returniere_referenz();
?>
Weitere Informationen über Referenzen finden Sie im Kapitel Referenzen in PHP.
Rückgabe-Typdeklarationen
PHP 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.
Von PHP 7.1.0 können Rückgabetypen als nullbar ausgezeichnet werden, indem
dem Typnamen ein Fragezeichen (?) vorangestellt wird.
Dies zeigt an, dass die Funktion entweder den angegeben Typ oder NULL
zurückliefert.
Hinweis:
Wird eine Elternmethode überschrieben, muss die Rückgabe-Typdeklaration der Kindmethode mit der Elternmethode übereinstimmen. Definiert die Elternmethode keinen Rückgabetyp, dann darf die Kindmethode das tun.
Beispiele
Beispiel #4 Grundlegende Rückgabe-Typdeklaration
<?php
function sum($a, $b): float {
return $a + $b;
}
// Beachten Sie, dass eine Gleitkommazahl zurückgegeben wird.
var_dump(sum(1, 2));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
float(3)
Beispiel #5 Einsatz des strengen Typisierungsmodus
<?php
declare(strict_types=1);
function sum($a, $b): int {
return $a + $b;
}
var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>
Das 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
<?php
class C {}
function getC(): C {
return new C;
}
var_dump(getC());
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
object(C)#1 (0) { }
Beispiel #7 Nullbare Rückgabe-Typdeklaration (von PHP 7.1.0 an)
<?php
function get_item(): ?string {
if (isset($_GET['item'])) {
return $_GET['item'];
} else {
return null;
}
}
?>
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-functions.returning-values.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.