A variable variable looks like this: $$var

So, if $var = 'foo' and $foo = 'bar' then $$var would contain the value 'bar' because $$var can be thought of as $'foo' which is simply $foo which has the value 'bar'.

Variable variables sound like a cryptic a useless concept, but they can be useful sometimes. For example, if we have a configuration file consisting of configuration directives and values in this format:

foo=bar
abc=123
Then it is very easy to read this file and create corresponding variables:

<?php
$fp = fopen('config.txt','r');
while(true) {
    $line = fgets($fp,80);
    if(!feof($fp)) {
        if($line[0]=='#' || strlen($line)<2) continue;
        list($name,$val)=explode('=',$line,2);
        $$name=trim($val);
    } else break;
}
fclose($fp);
?>
Along the same lines as variable variables, you can create compound variables and variable functions.

<?php
  $str = 'var';
  $var_toaster = "Hello World";
  echo ${$str.'_toaster'};

  $str();  // Calls a function named var()
  ${$str.'_abc'}();  // Calls a function named var_abc()
?>