Это языковая функция, которая называется Переменные переменные .
Рассмотрим следующий фрагмент кода:
$a = 'hello';
Это довольно просто. Он создает переменную $a
и устанавливает ее значение 'hello'
.
Давайте продолжим с:
$$a = 'world';
${$a} = 'world';
По сути, поскольку $a = 'hello'
, эти два утверждения эквивалентны действию:
$hello = 'world';
Итак, следующее:
echo "$a ${$a}";
Это эквивалент действия:
echo "$a $hello";
Брекеты { }
Скобки используются для предотвращения возникновения неоднозначности. Учтите следующее:
$$a[1] = 'hello world';
Вы хотите назначить переменную с именем по значению $a[1]
или же вы хотите присвоить индекс 1
переменной с именем $a
?
Для первого выбора вы должны написать это так:
${$a[1]} = 'hello world';
Для второго выбора:
${$a}[1] = 'hello world';
Ваш пример
Теперь для вашего примера.
Давайте рассмотрим, что:
$something = 'hello';
Используя ваш пример как таковой:
${"{$something}_somethingelse"} = 'php rocks';
По сути, это будет эквивалентно выполнению:
$hello_somethingelse = 'php rocks';