2012-03-02 44 views
0

我想直接从返回它的方法调用一个数组变量。像下面这样:PHP - 从返回它的方法调用数组值?

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

我知道我可以做这样的事情:

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

但是我想能够做到这一条线,像这样:

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

这将返回下面的错误,这是有道理的,但有没有办法在一行中做到这一点?

Trying to get property of non-object 

回答

4

在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(); 
?> 
+0

嗯,好吧,我想我会与老同学的方式来坚持现在,我们仍然在5.3。谢谢! – Rob 2012-03-02 21:48:10

1

这是在新的5.4版可能,发布3月1日

更多信息here