2

拥有一个数组 $a 和一个键 $key,通常就像 $a[$key] 一样简单地获取数组中该键的值。但是,如果数组是由这样的函数返回的:

function getArray(){
    return array('a' => someObjectValue1, 'b' => someObjectValue2);
}
echo getArray()['a'];

,那么你不能简单地做 getArray()[$key] 就像在某些版本的 PHP 中这会给你

解析错误:语法错误,意外 '[',期待 ',' 或 ';'

那么当然这样的事情会起作用:

$a = getArray();
echo $a['a'];

但我在 XDebug 的 Watch 窗口中,我不能这样做。

有任何想法吗?谢谢。

4

1 回答 1

2

有不同的方法可以解决这个问题。例如,显示期望值的单行可能是:

function foo()
{
   return array('bar'=>1, 'baz'=>2);
}

$value = array_shift(array_intersect_key(foo(), array('baz'=>null))); //you want $value

- 但这看起来很奇怪,创建调试函数可能有意义,例如:

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

$value = getValueByKey(foo(), 'baz');
于 2013-11-12T11:18:04.363 回答