2015-05-28 14 views
5

Ich habe eine Funktion userNumber($number), wo ich zwei Variablen zurückgeben möchte. Ich weiß, dass es nicht möglich ist, mehr als eine Variable in PHP-Funktionen zurückzugeben, also habe ich ein Array erstellt, damit ich bei Bedarf auf jeden Index/Wert aus dem Array zugreifen kann. Die Funktion testet, ob die Eingabe des Benutzers zwischen 100 & 200 liegt, und sollte den Cube und die Quadratwurzel der Zahl ausgeben.Zugriff auf einzelne Array-Variablen in PHP-Funktion

Ich mag die Funktion in Variablen nennen:

$calculationSquare = userNumber($number); 
$calculationCube = userNumer($number); 

Aber ich sehe nicht, wie ich in jedem Variablen jeden Wert des Arrays zugreifen kann (wie die Formatierung einen Index aufrufen - array []) ;

Hier ist die Funktion, die die Anzahl in quadratischen/Würfel konvertiert und gibt den Wert über Array:

function userNumber($number) { 

    $square = ""; 
    $cubed = ""; 

if(100 < $number && $number < 200) { 

$sqaure = sqrt($number); 
$cubed = $number * $number * $number; 

return array($square, $cubed); 

} // end if 

else { 

     return false; 
    } // end else 
} // end function userNumber 

Auch hier sind die beiden Variablen, die ich mit den Rückgabewerten füllen möchte (aber nicht wissen, wie er Quadrat oder Würfel in dem Array zuzugreifen, die Variablen entsprechend zu füllen):

$calculationSquare = userNumber($number); 
$calculationCube = userNumber($number); 

Jede Eingabe, wie die einzelnen Array-Werte in der Funktion zugreifen würde geschätzt oder Ressourcen auf dem Lernen mehr darüber.

+0

möglich Duplikat [Multiple kehrt von Funktionen] (http://stackoverflow.com/questions/3451906/multiple-returns-from-function) –

Antwort

2

In Ihrer aktuellen Implementierung Sie in PHP tun dies> = 5.4.0:

$calculationSquare = userNumber($number)[0]; 
$calculationCube = userNumber($number)[1]; 

Oder besser, dies würde die Funktion nur einmal nennen:

$result = userNumber($number); 
$calculationSquare = $result[0]; 
$calculationCube = $result[1]; 

Oder besser vielleicht sogar, verwenden list() Array-Werte für einzelne Variablen zuzuweisen:

list($calculationSquare, $calculationCube) = userNumber($number); 

Die oberhalb ca. oaches würde auch mit dem folgenden zurückgegebene Array arbeiten, aber es kann mehr beschreibend sein:

return array('square' => $square, 'cube' => $cubed); 

Sie können dann list() oder benutzen

$calculationSquare = $result['square']; 
$calculationCube = $result['cube']; 
Verwandte Themen