Wie man eine PHP-Funktion mit mehreren Rückgaben erstellt
-
PHP
Array
zur Rückgabe mehrerer Werte - PHP-Funktion mit bedingter dynamischer Rückgabe
- Kombination aus PHP-Array und dynamischer Bedingungsrückgabe
-
PHP
generator
, um mehrere Werte zuyield
Eine PHP-Funktion ist ein wiederverwendbarer Anweisungsblock, der es uns erlaubt, einen Rückgabewert zu haben, der ein einfacher String, ein Array oder ein JSON-Objekt ist. Aber es ist nicht möglich, mehr als einen Rückgabewert zu haben. Sie können jedoch ein Array verwenden, eine bedingte Anweisung erstellen, um eine dynamische Variable zurückzugeben, oder Generatoren (für PHP 5.5 und höher) verwenden.
PHP Array
zur Rückgabe mehrerer Werte
funtion arrayFunc(){
$var1 = "return 1";
$var2 = "return 2";
return array($var1, $var2);
}
In Anwendung:
$result = arrayFunc();
var_dump($result);
//output: array(2) { [0]=> string(8) "return 1" [1]=> string(8) "return 2" }
Die obige Funktion kann mehrere Rückgaben in Form eines Arrays haben, auf das über zugegriffen werden kann:
$result = arrayFunc();
echo $result[0]; // return 1
echo $result[1]; // return 2
Seit PHP 7.1 gibt es eine neue Funktion namens Destrukturierung
für Listen. Das bedeutet, es ist möglich, Dinge zu tun wie
$array = ['dog', 'cat', 'horse', 'fish'];
[$q, $w, $e, $r] = $array;
echo $q; // output: dog
echo $w; // output: cat
Die Anwendung in einer Funktion würde wie folgt aussehen:
function descructingFunction(){
return ['A', 'sample', 'descructing', 'function'];
}
[$a, $b, $c, $d] = descructingFunction();
echo $a; //output: A
echo $d; // output: function
PHP-Funktion mit bedingter dynamischer Rückgabe
function condFunc($x = true){
$ret1 = "One";
$ret2 = "Two";
if($x == true){
return $ret1;
}else{
return $ret2;
}
}
In Anwendung:
echo condFunc(true);
//output: One
Bei diesem Ansatz müssen nicht mehrere Werte zurückgegeben werden. Daher behandelt die Funktion die Bedingung, um den richtigen benötigten Wert zu filtern.
Kombination aus PHP-Array und dynamischer Bedingungsrückgabe
Wenn Sie die Funktion ein wenig modifizieren, haben Sie die Möglichkeit, ein Array oder eine dynamische Rückkehr zurückzugeben.
Beispiel:
function combination($x = true){
$ret1 = "One";
$ret2 = "Two";
if($x === true){
return $ret2;
}
if($x == "both"){
return array($ret1, $ret2);
}
}
echo combination(); //output: Two
var_dump(combination("both")) //output: array(2) { [0]=> string(8) "return 1" [1]=> string(8) "return 2" }
Die Verwendung dieses Ansatzes ermöglicht es der Funktion, flexibler zu sein.
PHP generator
, um mehrere Werte zu yield
Eine generator
-Funktion gibt keinen Wert zurück, sondern liefert
so viele Werte wie nötig. Sie gibt ein Objekt zurück, das iteriert werden kann.
Beispiel:
function multipleValues(){
yield "return 1";
yield "return 2";
}
$return = multipleValues();
foreach($return as $ret){
echo $ret; //$ret first value is "return 1" then "return 2"
}
Anmerkung: Das Schlüsselwort eines Generators
ist yield
. Es verhält sich wie ein Rücksprung
zu einer Funktionsanweisung, aber es hält die Ausführung nicht an und kehrt zurück, sondern liefert den Codeschleifen einen Wert.
Vorsicht: Bei der Verwendung von yield
als Ausdruck muss er von Klammern umgeben sein.
Beispiel:
$generator = (yield $test);