Есть ли способ в PHP интерпретировать возвращаемое значение функции непосредственно как массив?
скажем, у меня есть функция:
function getArray() { return array("foo", "bar"); }
вместо написания:
$array = getArray(); $var = $array[1];
Я хочу получить доступ к «бару» прямо так, как:
$var = getArray()[1]; //this causes an error
То, что вы хотите, называется разыменованием массивов и будет поддерживаться только с PHP 5.4 (что является будущей версией PHP).
Теперь вы можете использовать конструкцию языка list
:
list(, $var) = getArray();
Если вам нужно значение, чтобы передать его какой-либо другой функции, вы все равно можете взломать ограничение ( это просто для справки, а не то, что вы должны использовать ):
func(${'_'.!$_=getArray()}[1]); // using the $_ var func(${!${''}=getArray()}[1]); // using the $ var