1

この理由を尋ねるのはばかげているように感じますが、それはとても基本的なことのように思えますが、本当に私を悩ませています。

単一の要素を持つ配列を返すメソッドがあります。配列にラップされていない要素を返すようにしたいだけです。これを試しました。

return $f->getValue()[0];

エラーが発生しますが、変数に保存すると正常に動作します。

$v = $f->getValue();
return $v[0];

私はそれを理解することはできません....

4

5 に答える 5

4

PHP 5.4 以降でのみ利用可能です: http://codepad.viper-7.com/VHOW0o

于 2013-03-07T05:58:48.677 に答える
4

あなたがやろうとしていることはarray dereferencingと呼ばれ、バージョン 5.4 の時点で PHP でのみ可能です (私がリンクしたドキュメント記事を数行上にスクロールすると、言及されていることがわかります)。

于 2013-03-07T06:00:22.187 に答える
2

reset()を使用します。

<?php return reset( $f->getValue() ); ?>

編集: reset()は、配列に要素が1つしかない場合でも大きな違いはありませんが、内部ポインターがリセットされることを確認するため、おそらくcurrent()よりも優れています。

于 2013-03-07T06:03:16.000 に答える
1

あなたが配列を返しているので、私が知る限り、配列しか取得できません。代わりに、配列をクラス内の変数 ( でアクセス可能$f->myArray) に保存してから、文字列部分だけを返すことができます。または、他のオプションは、2番目の例を実行して配列を返し、そこから文字列を取得することです。

于 2013-03-07T05:56:37.833 に答える
0

これを試しましたか

         <?php
           return array_shift(array_values($array));
         ?>

配列の最初の要素を取得する

于 2013-03-07T06:11:03.310 に答える