有了一个数组 $a 和一个键 $key,通常就像 $a[$key] 一样简单地获取数组中该键的值。 但是,如果数组是由如下函数返回的:
function getArray(){
return array('a' => someObjectValue1, 'b' => someObjectValue2);
}
echo getArray()['a'];
,那么你不能简单地执行 getArray()[$key] ,因为在某些版本的 PHP 中,这会给你
Parse error: syntax error, unexpected '[', expecting ',' or ';'
那么当然像这样的事情会起作用:
$a = getArray();
echo $a['a'];
但我在 XDebug 的 Watch 窗口中,但无法执行此操作。
有什么想法吗? 谢谢。
最佳答案
有不同的方法可以解决这个问题。例如,用于显示所需值的一行可能是:
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');
关于php - 在 XDebug for PHP 中使用键获取数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19927529/