creo que por la sintaxis de eval ()
Cita: $valor="mi valor";
$item=1;
$__vm="__vm";
$variables= '$'.$__vm.$item.'='.$valor;
echo $variables;
//eval(\"$variables);
eval("\$variables = \"$variables\";");
echo $__vm1;
asi no lanza error,
revisa el manual de funciones php
Un saludo