PHP - 从返回它的方法调用数组值?

时间:2012-03-02 21:25:11

标签: php arrays object methods associative-array

我正在尝试直接从返回它的方法调用数组变量。如下所示:

function some_meth()
{
    return array('var1' => 'var);
}

我知道我可以这样做:

$var = some_meth();
$var = $var['var1'];

但我希望能够在一行中做到这一点,例如:

$var = some_meth()['var1'];

这会返回下面的错误,这是有道理的,但有没有办法在一行中执行此操作?

Trying to get property of non-object

2 个答案:

答案 0 :(得分:4)

在pre-php5.4中,这在单个调用中是不可能的。 5.4你可以像你的例子一样完成它。

来自http://docs.php.net/manual/en/language.types.array.php

  

从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组取消引用。之前只能使用临时变量。

<?php
function getArray() {
    return array(1, 2, 3);
}

// on PHP 5.4
$secondElement = getArray()[1];

// previously
$tmp = getArray();
$secondElement = $tmp[1];

// or
list(, $secondElement) = getArray();
?>

答案 1 :(得分:1)

这可以在3月1日发布的新5.4版本中实现。

更多信息here