在 XDebug for PHP 中使用 key 获取数组值


Get array value using key, in XDebug for PHP

有一个数组$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');