Curly braces create a variable with same name as string provided inside the curly braces.
In your code, it creates 4 new variables $a,$b,$c,$d by taking strings from the array
$var .
Here is an example to see the difference in variables created in your code:
http://codepad.org/E2619ufe
<?php
$var = array('a','b','c','d');
$currentState = get_defined_vars();
foreach($var as $item){
${$item} = array();
}
$newState = get_defined_vars();
$newVariables = array_diff(array_keys($newState),array_keys($currentState));
var_dump($newVariables);
?>
Here is an example usage of curly braces:
http://codepad.org/KeE75iNP
<?php
${'myVar'} = 12345;
var_dump($myVar);
/* also helpful when the variable name contains $ due to some reason */
${'theCurrency$'} = 4000;
var_dump(${'theCurrency$'});
/* uncomment line below, it will raise syntax error */
//var_dump($theCurrency$);
?>