関数の戻り値から直接配列にアクセスしたいと考えています。関数によって返される配列のキーにアクセスする方法
e.g.
$arr = find_student();
echo $arr['name'];
// I want to be able to do
echo find_student()['name']
どうすれば同じことができますか?別のコード行なし?
関数の戻り値から直接配列にアクセスしたいと考えています。関数によって返される配列のキーにアクセスする方法
e.g.
$arr = find_student();
echo $arr['name'];
// I want to be able to do
echo find_student()['name']
どうすれば同じことができますか?別のコード行なし?
できません。 PHP構文パーサは制限されており、現在のバージョンでは許可されていません。
PHPの開発者は、PHPの今後のリリースのためのパーサを拡張しました。 解析エラー:構文エラー、予期しない '['、期待して '' または ';' ここで:)
function find_student() {return array('name'=>123);}
echo find_student()['name'];
結果あなたはカントblog talking about it
へのリンクです
あなたが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()
のようなネイティブ配列機能を使用できません。しかし、配列のようにオブジェクトに好きなようにデータにアクセスできます。
これはその1つの方法です。ありがとう –
また、配列関数を使用したい場合、これを行うことができます:(array)find_student(); – Prof83
あなたがしたいことはできません。最初に変数に戻り値を代入する必要があります – jere
PHP 5.4の場合、数週間/月を待ちますが、この構文を許可しています。 –