2011-04-25 15 views
7

関数の戻り値を配列として直接解釈する方法はありますか?関数の戻り値を直接配列として解釈する

私は機能を持って言うことができます:

function getArray() { 
    return array("foo", "bar"); 
} 

代わりに書いている:

$array = getArray(); 
$var = $array[1]; 

私が直接、多少のような "バー" にアクセスしたい:

$var = getArray()[1]; //this causes an error 

答えて

11

あなたが欲しいですarray dereferencingと呼ばれ、PHP 5.4(これから登場するPHPバージョン)の時点でのみサポートされます。これは、あくまでも参考のためではありませんあなたは、いくつかの他の関数に渡す値が必要な場合は

list(, $var) = getArray(); 

が、あなたはまだ(制限を回避をハックすることができます

今のあなたはlist言語構造を使用することができますあなたがを使用すべきもの):

func(${'_'.!$_=getArray()}[1]); // using the $_ var 
func(${!${''}=getArray()}[1]); // using the $ var 
+0

1 - パーサを台無しに – hakre

関連する問題