Pues usar eval() sigue siendo una pésima practica, no hace falta para reemplazar dicha sintaxis.
Código PHP:
Ver original$foo = 'bar';
$candy = 'DOES $foo NOTHING';
echo str_replace('$foo', $foo, $candy); // DOES bar NOTHING
Claro habría que abstraer un poco más pero es la misma idea.
No usen eval() sólo porque "es más fácil".