ダブルクオート中でアロー演算子(->)と配列([])が文字列として扱われてるだけ
シングルクオートの場合は変数すらも文字列として扱われる

○ "$var<br>";
○ "{$var}<br>";
× '$var'<br>;
× '{$var}<br>';
○ $var . "<br>";
○ $var . '<br>';

× "$this->a[]<br>"
○ "{$this->a[]}<br>"
○ $this->a[] . "<br>"