オブジェクトのアロー演算子と配列の優先順位について

投稿者: Anonymous

下記のような書き方をしたとき、
$obj->$key[$str] = 'hoge';

$obj->$keyよりも$key[$str]が先に判断されてしまいます。
このときに、$obj->$keyを先に判断したいと思っています。

たとえば、

$temp = $this->$key;
$temp[$str] = 'hoge';
$obj->$key = $temp;

のような書き方をすれば想定する動きとなりますが、
もっと直感的で、きれいな書き方はありませんでしょうか?

各変数の前提は以下の通りです。

  • $objはオブジェクト
  • $keyは文字列で、変動する
  • $key = ‘hoge’;の場合に、$obj->hogeは配列
  • $strは文字列

よろしくお願いいたします。

解決

直感的かどうかはわかりませんが次のようにすると大丈夫そうです。

$obj->{$key}[$str] = 'hoge';
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *