mmm....
mira...
eval() ejecuta PHP puro... sin etiquetas
<?php ?> eval() funciona así...
Código:
echo 'algo'; ?> esto es otra cosa.... <?php echo 'vuelvo a ' . phpversion();
pero no así todo el parser de PHP ... que trabaja así...
Código:
... <?php echo 'algo'; ?> esto es cualquier otra cosa.... <?php echo 'vuelvo a ' . phpversion();
la diferencia, esta en que
eval() ejecuta solo PHP ... por eso debes salir del modo PHP usando
?> al inicio de tu cadena a evaluar... para que, de modo natural... tan solo interpreta los bloques
<?php ?>
es por eso que tu código al inicio no funcionaba... ya que al estar dentro del modo PHP, usando
eval() todo te daba errores, ya que era un problema de sintaxis...
al poner
eval('
?> lo que sea...') evitas el problema, saliendo del modo PHP ... y volvemos a lo mismo... tan solo interpreta los bloques
<?php ?>
¿acaso es tan dificil entender esto???