有一个数组$a和一个键$key,通常就像$a[$key]一样简单地获取数组中该键的值。但是,如果数组由如下函数返回:
function getArray(){
return array('a' => someObjectValue1, 'b' => someObjectValue2);
}
echo getArray()['a'];
,那么你不能简单地做getArray()[$key],就像在某些版本的PHP中那样,这会给你
解析错误:语法错误、意外的"[",预期"、"或";"
那么这样的事情当然会起作用:
$a = getArray();
echo $a['a'];
但我在 XDebug 的监视窗口中,我不能这样做。
有什么想法吗?谢谢。
有不同的方法可以解决这个问题。例如,用于显示所需值的单行可以是:
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');