Funktion rückgabe von variablen

Homwer

Mitglied
Hallo,
ich habe eine Funktion, die mir am ende 2 variablen rausgeben soll,
wie genau bekomme ich die übermittelt?

Ich habe es so versucht

PHP:
function anta()    
{
$query2 = "SELECT * FROM cds ORDER BY RAND()";
result2 = mysql_query($query2);
while ($line2 = mysql_fetch_array($result2)) { 
$fa = $line2[Antwort];
$faID = $line2[id]; 
}     
return $fa+$faID;
}

jetzt würde ich gerne
echo $fa; machen können?!
 
echo $fa geht defintiv nicht (oder wenn, würde es nicht das erwartete Ergebnis bringen, da $fa für die Funktion lokal ist).

Was aber geht, wäre
PHP:
echo anta();

Allerdings ist das, was von der Funktion zurückkomt, ein Wert, und nicht zwei.
 
Hallo,

du kannst die beiden Werte auch per Referenz zurückgeben:

PHP:
function anta(&$fa,&$faID)    
{
$query2 = "SELECT * FROM cds ORDER BY RAND()";
result2 = mysql_query($query2);
while ($line2 = mysql_fetch_array($result2)) { 
$fa = $line2[Antwort];
$faID = $line2[id]; 
}     
return true;  //oder sonst irgendwas...
}

Du musst dann beim Funktionsaufruf natürlich auch zwei Variablen, die beschrieben werden können übergeben.

Gruß
cesupa
 
Müsste mit Referenzen gehen oder alternativ beide Werte mit einem "Trenner" als ein Wert zurückgeben und vor dem Benutzen der Werte aufsplitten.

PHP:
function anta()    
{
$query2 = "SELECT * FROM cds ORDER BY RAND()";
result2 = mysql_query($query2);
while ($line2 = mysql_fetch_array($result2)) { 
$fa = $line2[Antwort];
$faID = $line2[id]; 
}     
return $fa+'|'+$faID;
} 

// Wert benutzen
$werte = explode("|",anta()); // werte[0] = $fa und werte[1] = $faID

mfg
 
Warum so kompliziert?
Warum nicht direkt ein Array zurückgeben?

PHP:
function anta()    
{
  $query = "SELECT * FROM cds ORDER BY RAND()";
  $result = mysql_query($query);
  while ($line = mysql_fetch_array($result)) 
  { 
    $return['antwort'] = $line['Antwort'];
    $return['id'] = $line['id']; 
  }     
  return $return;
}
$val = anta();

echo $val['antwort'];
echo $val['id'];

Übrigens hat jede Funktion ihren eigenen Namensraum, deshalb musst du dort eigentlich keine Variablen "hochzählen".
 
Zuletzt bearbeitet:
Nutze für die Rückgabe ein Array. Gib aber im Fehlerfall einen festen Wert zurück, um zu verhindern, dass der Zugriff auf das Array wegen unbekannter Indizes scheitert.
PHP:
function rechne($a, $b) {
  if (is_numeric($a) && is_numeric($a)){
    $summe = $a + $b;
    $produkt = $a - $b;
    return array('summe' => $summe, 'produkt' => $produkt);
  } else {
    return false;
  }
}
// Aufruf der Funktion
$ergebnis = rechne( 2, 1);
// Ausgabe mit Prüfung von $ergebnis
echo 'Summe: '.($ergebnis !== false) ? $ergebnis['summe'] : "unbekannt";
echo 'Produkt: '.($ergebnis !== false) ? $ergebnis['produkt'] : "unbekannt";
 
Zuletzt bearbeitet:
Zurück