从返回数组的函数中获取一个值的单行代码


One line code to get one value from function that returns an array

可能重复:
分解时分析错误(';-';,';foo-bar';)[0](例如)

在PHP中,有返回数组的函数,例如:

$a = parse_url("https://stackoverflow.com/q/9461027/87015");
echo $a["host"]; // stackoverflow.com

我的问题是如何将上述两个陈述合并为一个陈述。这(在JavaScript中有效,但不起作用):

echo parse_url("https://stackoverflow.com/q/9461027/87015")["host"];

注意:函数数组取消引用从PHP 5.4开始提供;以上代码按原样运行

您可以做一个小技巧,编写一个简单的函数

function readArr($array, $index) {
    return $array[$index];
}

然后像这个一样使用它

echo readArr(parse_url("http://stackoverflow.com/questions/9458303/how-can-i-change-the-color-white-from-a-uiimage-to-transparent"),"host");

老实说,编写上述代码的最佳方式是:

$a = parse_url("http://stackoverflow.com/q/9461027/87015");
echo $a["scheme"];
echo $a["host"];

这不是我最初发布的吗

是的。根据上下文的不同,你可能想要一个比$a(也许是$url)更好的名称,但这是最好的写法。添加函数不是一个有吸引力的选择,因为当你重新访问你的代码或有人阅读你的代码时,他们必须找到这个模糊的函数,并弄清楚它到底为什么存在。在这种情况下,请使用母语。

备用代码:

但是,您可以组合echo语句:

$a = parse_url("http://stackoverflow.com/q/9461027/87015");
echo $a['scheme'], $a['host'];