Я знаю, что вы можете сделать: $hash('foo') и $$foo а также $bar[$foo] , что называется каждой из этих вещей? 
  $hash('foo') – переменная функция. 
  $hash может содержать строку с именем функции или анонимную функцию. 
 $hash = 'md5'; // This means echo md5('foo'); // Output: acbd18db4cc2f85cedef654fccc4a4d8 echo $hash('foo'); 
  $$foo – переменная переменная. 
  $foo может содержать строку с именем переменной. 
 $foo = 'bar'; $bar = 'baz'; // This means echo $bar; // Output: baz echo $$foo; 
  $bar[$foo] – это переменный массив. 
  $foo может содержать все, что может использоваться как ключ массива, например числовой индекс или ассоциативное имя. 
 $bar = array('first' => 'A', 'second' => 'B', 'third' => 'C'); $foo = 'first'; // This tells PHP to look for the value of key 'first' // Output: A echo $bar[$foo]; 
В руководстве PHP есть статья об переменных переменных и статья об анонимных функциях (но я не показывал приведенный выше пример для последнего).