2 Werte aus Funktion übergeben.
lvl
- php
Hallo liebe selfhtml Gemeinde.
Ich habe eine Funktion:
function test($a1, $a2, $a3)
{
$e1 = $a1 + 3;
$e2 = $a2 + $a3;
Return ???
}
So nun meine Frage:
Ich möchte aus dieser Funktion $e1 und $e2 auslesen, aller dings als Variable.
Quellcode weiter:
$e1 = test(1, 2, 3);
$e2 = test(1, 2, 3);
oder wie funktioniert das?
Unter PHP.net hab ich leider kein Ergebnis auf meine Suche gefunden und mein "schlaues PHP Buch" habe ich nicht bei mir.
MfG lvl
Liebe(r) lvl,
function test($a1, $a2, $a3)
{
$e1 = $a1 + 3;$e2 = $a2 + $a3;
// Return ???
return array("e1" => $e1, "e2" => $e2);
}
Quellcode weiter:
$ergebnis = test(1, 2, 3);
$e1 = $ergebnis["e1"];
$e2 = $ergebnis["e2"];
oder wie funktioniert das?
s.o.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
return array("e1" => $e1, "e2" => $e2);
Ja ich habs mir fast gedacht. Leider kam die erläuchtung in diese Richtung zu denken nach meinem Post.
Also Danke. ;)
PS. lvl = Lieber :D
Quellcode weiter:
$ergebnis = test(1, 2, 3);
$e1 = $ergebnis["e1"];
$e2 = $ergebnis["e2"];
Vielleicht sollte man noch erwähnen, dass man mit
list($e1, $e2) = test(1, 2, 3);
die Ergebniswerte recht elegant zuweisen kann.
Grüße,
lucien
Hallo,
Bau doch $e1 und $e2 in ein assoziatives Array und gib das mit return zurück:
function test($a1, $a2, $a3)
{
$e1 = $a1 + 3;
$e2 = $a2 + $a3;
$resultVec = array("e1" => $e1, "e2" => $e2);
return ($resultVec);
}
$rv = test(1,2,3),
$e1 = $rv["e1"];
$e2 = $rv["e2"];
Gruesse,
Joerg
Hallo lvl,
Ich habe eine Funktion:
function test($a1, $a2, $a3)
{
$e1 = $a1 + 3;$e2 = $a2 + $a3;
$arr_return = array();
$arr_return[0] = $e1;
$arr_return[1] = $e2;
return $arr_return;
}
Schönen Gruß aus München
die knappschaft
Hallo,
nee, eine Funktion bzw. Methode liefert genau einen Wert zurück.
Allerdings kann eine Funktion/Methode auch Nebeneffekte haben, zum Beispiel globale Variablen oder Eigenschaften der aktuellen Klasseninstanz verändern.
Für Dein Beispiel ist es aber vielleicht das Einfachste und Sauberst, einfach Deine Ergebnisse als Array zurückzugeben.
function foo(a, b) {
results = array();
results[0] = a + b;
results[1] = a * b;
return results;
}
bar = foo(2, 5);
echo bar[0].'<br />';
echo bar[1].'<br />';
Ciao,
Andreas
Hallo,
boah - bin ich langsam...
;)
Ciao,
Andreas
exzellentes Buch übrigens :)