将函数的返回值直接解释为数组

jan*_*jan 7 php

PHP中有没有办法直接将函数的返回值解释为数组?

让我说我有一个功能:

function getArray()  {
  return array("foo", "bar");
}
Run Code Online (Sandbox Code Playgroud)

而不是写:

$array = getArray();
$var = $array[1];
Run Code Online (Sandbox Code Playgroud)

我想直接访问"bar"有点像:

$var = getArray()[1]; //this causes an error
Run Code Online (Sandbox Code Playgroud)

Nik*_*kiC 11

您想要的是称为数组解除引用,并且仅在PHP 5.4(即将发布的PHP版本)之后才支持.

现在您可以使用list语言构造:

list(, $var) = getArray();
Run Code Online (Sandbox Code Playgroud)

如果您需要将值传递给其他函数,您仍然可以解决限制(这仅供参考,而不是您应该使用的):

func(${'_'.!$_=getArray()}[1]); // using the $_ var
func(${!${''}=getArray()}[1]);  // using the $ var
Run Code Online (Sandbox Code Playgroud)