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

时间:2012-02-27 06:41:47

标签: php arrays syntax

  

可能重复:
  Parse error on explode('-','foo-bar')[0] (for instance)

在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之后可以使用函数数组解除引用;上面的代码按原样运行。

2 个答案:

答案 0 :(得分:2)

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

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");

答案 1 :(得分:1)

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

$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'];