Из того, что я могу сказать в Руководство по PHP, не похоже, что существует большая разница между определением переменной с двойными скобками или двойными знаками доллара.
$foo = 'hello';
$$foo = 'hi';
echo $hello; // 'hi'
$baz = 'goodbye';
${$baz} = 'bye';
echo $goodbye; // 'bye'
Единственное отличие, которое он упоминает в руководстве, заключается в использовании массивов. Есть ли другая заметная разница между этими двумя? Какой из них лучше для каких ситуаций?
Обе версии в основном одинаковы.
Обозначение фигурных скобок используется в тех случаях, когда может быть неоднозначность:
$foo = 'bar';
$bar = [];
${$foo}[] = 'foobar';
var_dump($bar); // foobar
Если вы опустите скобки в приведенном выше примере, вы получите фатальную ошибку, с скобками, она работает нормально.
Однако я бы порекомендовал вообще избегать имен динамических переменных. Они забавны в использовании и могут сэкономить место. Но, в конце концов, ваш код станет менее читабельным, и у вас возникнут проблемы с отладкой.
В этом случае разницы нет. Это похоже на использование скобок для группировки операторов, даже если они не нужны.