2012年3月21日

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

小林です。

ご返答ありがとうございます。

> 変数代入の場合であれば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も使えますね。

たしかに今回の例では list が使えますね。

ただ、欲を言うと以下のように引数に渡したりなどもしたかったです。
(後出しですみません…)

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

function foo2()
{
$a = array();
$a['a']['x'] = 10;
$a['a']['y'] = 20;
$a['b']['x'] = 30;
return $a;
}

function bar($str)
{
print "$str\n";
}

$a = foo();
bar(foo()[1]); // php 5.4.0 より前だとエラー
bar(foo2()['a']['y']); // php 5.4.0 より前だとエラー
-------------------

カッコの組み合わせとかで何とかならないかと思いましたが
それはどうも無理そうなので
無難に php 5.4.0 を導入(か、導入できない環境ではガマン)するのが
良いと思いました。

--
kobayashi <kobayan.ml@xxxxx>
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2012年3月21日 14:33
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/109432
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。