2012-01-11 24 views
1

関数の戻り値から直接配列にアクセスしたいと考えています。関数によって返される配列のキーにアクセスする方法

e.g. 
$arr = find_student(); 
echo $arr['name']; 

// I want to be able to do 
echo find_student()['name'] 

どうすれば同じことができますか?別のコード行なし?

+0

あなたがしたいことはできません。最初に変数に戻り値を代入する必要があります – jere

+0

PHP 5.4の場合、数週間/月を待ちますが、この構文を許可しています。 –

答えて

6

できません。 PHP構文パーサは制限されており、現在のバージョンでは許可されていません。

PHPの開発者は、PHPの今後のリリースのためのパーサを拡張しました。 解析エラー:構文エラー、予期しない '['、期待して '' または ';' ここで:)

function find_student() {return array('name'=>123);} 
echo find_student()['name']; 

結果あなたはカントblog talking about it

2

あなたがArrayObjectを使用して似何かを行うことができます。

function find_student() { 
//Generating the array.. 
$array = array("name" => "John", "age" => "23"); 

return new ArrayObject($array); 
} 

echo find_student()->name; 
// Equals to 
$student = find_student(); 
echo $student['name']; 

ダウンサイドでは、array_merge()のようなネイティブ配列機能を使用できません。しかし、配列のようにオブジェクトに好きなようにデータにアクセスできます。

+0

これはその1つの方法です。ありがとう –

+0

また、配列関数を使用したい場合、これを行うことができます:(array)find_student(); – Prof83

関連する問題