PHPでは変数やクラスのプロパティを可変にすることができます。これを「可変変数」と言います。
波括弧は必須ではありませんが、曖昧さの問題を解決するために、つけておいたほうがよいでしょう。
変数と同様に、関数(クラスのメソッド)を可変にすることもできます。これを「可変関数」と言います。
可変関数の仕組みで実行できるのは「関数(メソッド)」であり、「言語構造」はこの方法で実行する事ができません。
echo, print, isset(), unset(), empty(), include, require などは「(関数ではなく)言語構造」であるため、注意が必要です。
このコラムに関連するコードはこちらになります
https://github.com/php-engineer-examination/php8_column_expert/blob/main/src/007_variables-variable.php
https://github.com/php-engineer-examination/php8_column_expert/blob/main/src/007_variables-functions.php