[PHP-users 35693] Re: 関数の戻り値を変数に格納せずに配列アクセスしたい

spooky @ mrf.biglobe.ne.jp spooky @ mrf.biglobe.ne.jp
2012年 3月 20日 (火) 18:45:19 JST


変数代入の場合であればlist使う方法もあります。

function foo()
{
  return array(10, 20);
}

list($n) = foo();
echo $n;
// 10

list(, $n) = foo();
echo $n;
// 20

list($n, ) = foo();
echo $;
// 10

関数から返る配列の先頭,末尾ならarray_shift,array_popも使えますね。

> On Tue, 20 Mar 2012 14:43:44 +0900
> Subject: [PHP-users 35690] 関数の戻り値を変数に格納せずに配列アクセスしたい
> kobayashi <kobayan.ml @ gmail.com> wrote (In article):
> 小林と申します。
> 
> 配列を返す関数からは以下のように値を取得することができますが、
> 
> $a = foo();
> $n = $a[1]; // 20 を取得できる
> 
> function foo()
> {
>   return array(10, 20);
> }
> 
> 
> これを配列変数 $a を介さず、
> 以下のように1行で書く方法はありますでしょうか?
> 
> $n = foo()[1]; // 構文エラーでした
> $n = (foo())[1]; // 構文エラーでした
> $n = $(foo())[1]; // 構文エラーでした
> 
> 
> C++ や Perl 等では (構文は違えど) 上記のようなことができますが、
> php でもそれができれば少しコーディングで楽ができるかな、
> という程度の興味です。
> 
> -- 
> kobayashi <kobayan.ml @ gmail.com>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3



PHP-users メーリングリストの案内