phpでは$this
は特別な意味を持ちますが、
php7.1から変数名として使ったり、値の代入ができないようにきちんとチェックをすように修正されているとの記述を公式のDocumentを見ていて知りました。
むしろ、当たり前のように使っていたからphp7.0まではチェックしていなかったことを知りませんでした…
以下、公式の引用
PHP において $this は特別な変数という扱いですが、 これが他の場所で変数名として使われていたり再代入されていたりしないことを、 きちんとチェックできていませんでした。 これを修正してきちんとチェックするようになったので、 $this をユーザー定義の変数名として使ったり他の値を再代入したり、 グローバル変数にしたりすることはできなくなりました。