2011-04-25 23 views
7

Czy istnieje sposób w PHP do interpretowania zwracanej wartości funkcji bezpośrednio jako tablicy?Interpretowanie zwracanej wartości funkcji bezpośrednio jako tablicy

powiedzmy mam funkcję:

function getArray() { 
    return array("foo", "bar"); 
} 

zamiast piśmie:

$array = getArray(); 
$var = $array[1]; 

Chcę uzyskać dostęp do "bar" bezpośrednio nieco takich jak:

$var = getArray()[1]; //this causes an error 

Odpowiedz

11

co chcesz jest nazywany dereferencją macierzy i będzie obsługiwany tylko od PHP 5.4 (która jest nadchodzącą wersją PHP).

Teraz można użyć konstrukt list język:

list(, $var) = getArray(); 

Jeśli potrzebujesz wartość przekazać go do innej funkcji, nadal można włamywanie wokół ograniczenia (to tylko w celach informacyjnych, a nie coś, co powinieneś użyć:):

func(${'_'.!$_=getArray()}[1]); // using the $_ var 
func(${!${''}=getArray()}[1]); // using the $ var 
+0

+1 - zrób parser – hakre

Powiązane problemy