下記のような書き方をしたとき、
$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は文字列

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