我正在尝试直接从返回它的方法调用数组变量。如下所示:
function some_meth()
{
return array('var1' => 'var);
}
我知道我可以这样做:
$var = some_meth();
$var = $var['var1'];
但我希望能够在一行中做到这一点,例如:
$var = some_meth()['var1'];
这会返回下面的错误,这是有道理的,但有没有办法在一行中执行此操作?
Trying to get property of non-object
答案 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