Mira
Código PHP:
$_POST['a'] = 'hola';
$var = 'a';
$z = '$xy = $_POST[\'' . $var . '\'];';
echo $z . '<br/>';
eval ($z);
echo $xy;
Tu código tambien me funciona, solo lo he puesto mas prolijo y simple. El resto del código es solamente para probar que funciona.
Saludos