Pamiętam jak pisałem kiedyś pewny skrypt oparty na funkcji i potrzebowałem odwołać się do zmiennej globalnej, która była nazwą parametru funkcji. Do funkcji przekazywana była 1 z 20 nazw zmiennych. Wyglądałoby to mniej więcej tak

<?php
$zmienna1 = 'wartość 1';
$zmienna2 = 'wartość 2';

function zmienna($var)
{
  if($var == 'zmienna1')
  {
    global $zmienna1;
    return $zmienna1;
  }
  elseif($var == 'zmienna2')
  {
    global $zmienna2;
    return  $zmienna2;
  }
  // ...kolejne 18 warunków...
}

echo zmienna('zmienna1');

Oczywiście w moim przypadku funkcja miała za zadanie coś innego, niż wyświetlenie wartości zmiennej ale to tylko przykład.

Jak zrobić to prościej? Otóż, PHP ma coś takiego jak „zmienna zmiennej”. Jak to wygląda? Pokażę na przykładzie zmiany powyższej funkcji.

<?php
$zmienna1 = 'wartość 1';
$zmienna2 = 'wartość 2';

function zmiennaZmiennej($var)
{
  global $$var;
  return $$var;
}

echo zmiennaZmiennej('zmienna1');

Nie, podwójny $ przed var to nie błąd.

<?php
$a = 'hello';
$hello = ' world';

echo $a.$$a; // wyświetli nam "hello world"