2012-03-02 70 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