Динамічні змінні в php
Сьогодні ми поговоримо про динамічні змінні php.
Інколи корисно встановлювати і використовувати змінні динамічно.

Зазвичай ви визначаєте змінну наступним чином:

$var = “hello”;

Тепер,допустимо,ви хочете визначити змінну з іменем , яке є значенням змінної $var .
Ви можете це зробити наступним методом:

$$var = “World”;

PHP аналізує $$var , спочатку розіменовуючи саму внутрішню змінну, тобто , $var підмінюється її значенням “hello”. При цьому зліва залишається вираз $”hello” ,тобто $hello . Іншими словами ми створили нову змінну з іменем hello і присвоїли їй значення “World”.

В PHP немає обмежень на рівень вложеності динамічних змінних,але потрібно відмітити,що коли ви створюєте змінну з більш ніж двома рівнями вложеності ,ваш код буде тяжкочитаючим.

Існує спеціальний синтаксис для використання динамічних змінних,взятих в лапки ,всередині рядків в PHP:

echo “Hello ${$var}”;

Цей синтаксис також використовується, щоб уникнути неясності при використанні масивів змінних . Запис подібний $$var[1] є двохзначним ,тому що PHP не може визначити до якого рівня застосувати індекс масиву.
Запис ${$var[1]} дає вказівку php спочатку розіменувати внутрішній рівень і застосувати індекс масиву до отриманого результату, а потім розіменовувати зовнішній рівень. З іншої сторони , запис ${$var}[1] вказує PHP застосовувати індекс до зовнішнього рівня.

На перший погляд, динамічні змінні можуть здатися не дуже корисними, але в деяких випадках вони можуть скоротити ваш код,необхідний для виконання певних задач. Наприклад , ви можете створити асоціативний масив таким чином:

$array[“abc”] = “hello”;
$array[“def”] = “World”;

Асоціативні масиви,подібні наведеному вище , часто є результатом різних функцій в PHP-модулях. Наприклад , mysql_fetch_array(). Індекси в масиві зазвичай відносяться до полів або до назв об’єктів в області контексту модуля,с яким ви працюєте. Може виявитися досить зручно переводити такі назви об’єктів в реальні PHP-змінні так,щоб можна було звернутися до них як просто до $abc або $def.