Wie man eine PHP-Funktion mit mehreren Rückgaben erstellt

  1. PHP Array zur Rückgabe mehrerer Werte
  2. PHP-Funktion mit bedingter dynamischer Rückgabe
  3. Kombination aus PHP-Array und dynamischer Bedingungsrückgabe
  4. PHP generator, um mehrere Werte zu yield

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 Ertrag. 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);

Verwandter Artikel - PHP Function

  • Wie man eine Zahl mit führenden Nullen in PHP richtig formatiert