2015-05-28 21 views
5

İki değişkeni döndürmek istediğim bir işlev var userNumber($number). PHP işlevlerinde birden fazla değişkenin döndürülmesinin mümkün olmadığını biliyorum, bu yüzden bir dizi oluşturdum, böylece gerektiğinde diziden herhangi bir dizine/değere erişebiliyorum. Fonksiyon, kullanıcının girişinin 100 & 200 arasında olup olmadığını test eder ve sayının küp ve karekökünü çıkarmalıdır.PHP İşlevinde Bireysel Dizi Değişkenlerine Erişme

Ben değişkenleri işlevi çağırmak istiyorum:

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

Ama her değişken dizinin her değerini nasıl erişebileceğini görmüyorum (bir dizin çağırma biçimlendirme gibi - Dizi []) ; İşte

kare/küp içine numarayı çevirir ve dizinin aracılığıyla değerini verir işlevdir: Yine

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 

, burada dönüş değerleri ile doldurmak istiyorum iki değişken (ama) buna göre değişkenlerini doldurmaya dizideki kare veya küp he erişmek nasıl bilmiyorum:

fonksiyonunda bireysel dizi değerlerini erişmek konusunda herhangi bir giriş mutluluk duyacağız
$calculationSquare = userNumber($number); 
$calculationCube = userNumber($number); 

, veya kaynakları daha öğrenmeye bunun hakkında. Mevcut uygulamada

+0

olası yinelenen (http://stackoverflow.com/questions/3451906/multiple-returns-from-function) –

cevap

2

sen> = 5.4.0 PHP yapabilirsiniz:

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

Hatta, bu sadece bir defa işlevini çağırır: belki

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

Hatta daha da iyisi, bireysel değişkenlere dizi değerini belirlemek için list() kullanımı:

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

yukarıda yakl oaches ayrıca aşağıdaki döndürülen dizi çalışacak, ama bu daha açıklayıcı olabilir:

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

Daha sonra kullanabilirsiniz list() ya:

$calculationSquare = $result['square']; 
$calculationCube = $result['cube']; 
[işlevinden Birden getiri] arasında