Bir işlev tarafından döndürülen bir dizi erişmek [çoğaltmak]

6 Cevap php

Bu soru burada zaten bir cevabı var:

6 Cevap

Dereferencing PHP 5.4 eklenen dizi, burada PHP'nin gelen örnek Array documentation:

Example #7 Array dereferencing

function getArray() {
    return array(1, 2, 3);
}

// on PHP 5.4
$secondElement = getArray()[1];

// previously
$tmp = getArray();
$secondElement = $tmp[1];

dizilerle cevap hayır, ama nesneleri kullanabilirsiniz:

function getData($id) {
   // mysql query
   return mysql_fetch_object($result);
}

echo getData($id)->name;

Gerçekten değil. Eğer olsa, bunu yapmak için bir fonksiyon tanımlayabiliriz:

function array_value($array, $key) {
    return $array[$key];
}

// and then
echo array_value(getData($id), 'name');

Muhtemelen bu durumda size çok yardımcı olmayacaktır diğer tek yolu, size dönen dizide ilk n öğeleri alırsınız list() hangi kullanmaktır. Sen önceden olsa listedeki öğelerin sırasını bilmek zorunda:

function test() {
    return array(1, 2, 3, 4);
}

list($one, $two, $three) = test();
// now $one is 1, $two is 2, $three is 3

Ben bir similar question bir süre önce sordu.

Kısa cevap yapamazsın, hayır. Sadece dizideki ilk değer gerekiyorsa Yine, size reset () kullanabilirsiniz:

function getArray()
{
    array('la', 'li', 'lu');
}
echo reset(getArray()); // echos "la"

Ne yazık ki, hayır.

Böyle bir şey yapabilirsiniz:

function getData($id) {
    // mysql query
    return mysql_fetch_array($result);
}

foreach(getData("your_input_query") as $key=>$value){
   echo $value;
}

Onlar ($ anahtar == 'isim' eğer bu durumda,) belirli bir değere eşit Ve eğer o zaman bir anahtarı kullanabilirsiniz veya if / else ifadeleri sadece döndürülen verilere diğer işlevleri gerçekleştirmek.

Kısacası, sadece bu geçici değişkeni ayarlamak ve bu şekilde erişmek çok daha kolaydır.

Ben verbage soru için biraz yanlış olduğunu düşünüyorum, ama bu böyle bir şey başarmak için arıyoruz düşünüyorum:

echo getData($id)->someArrayOffset;

Eğer mysql_fetch_object ile bunu yapabilirsiniz, ben sizin için nesneleri döndürmek fonksiyonu dışında bunun için bir faydasını bulabilirsiniz böylece, veya PHP 4 kendi nesneyi döndürerek size PHP5'ta ArrayObject kullanarak bunu nasıl sana göstereceğim. İşte PHP5'ta ArrayObject kullanarak aynı fonksiyonu bulunuyor:

function getData($id) {
    // mysql query
    return new ArrayObject( mysql_fetch_array($result) );
}

echo getData($id)->name;