Введение

Обычно переменная имеет заранее определённое имя. Например, следующий код определяет переменную с именем $title, которая хранит строку:
В PHP имя переменной может быть задано динамически на основе значения другой переменной. Например:
Вывод:

Как это работает:

  1. Сначала определяем переменную $my_var, которая содержит строку 'title'.
  2. Затем создаём переменную-переменную с помощью двойного знака доллара ($$my_var). Это приводит к созданию новой переменной с именем $title.
  3. Выводим значение переменной $title.

Пример использования переменных-переменных в PHP

Предположим, у вас есть следующая структура папок и файлов:
В файле index.php определим функцию view(), которая загружает код из файла, указанного параметром $file:
Чтобы передать данные в скрипт, можно добавить второй параметр - массив данных:
Из скрипта, указанного в $file, можно обращаться к элементам массива $data.

Пример передачи данных

В файле home.php доступ к массиву $data осуществляется так:
При запуске index.php загружается код из home.php, и отображаются заголовок и приветствие. Однако было бы удобнее обращаться к элементам массива $data напрямую как к переменным:

Преобразование элементов массива в переменные

Для этого используем переменные переменные внутри функции view():
В этом коде мы перебираем элементы массива $data и создаём переменные с именами, равными ключам массива, и значениями, равными значениям массива.
Теперь в подключаемом скрипте можно использовать переменные напрямую:
В файле home.php:

Итог

Переменные-переменные в PHP - это переменные, имена которых задаются динамически. Такой подход позволяет гибко работать с именами переменных и передавать данные между скриптами без явного объявления каждой переменной.