evalEjecuta una cadena como un script PHP
&reftitle.description;
mixedevalstringcode
Evalúa el code proporcionado como código PHP.
El código en evaluación hereda el
ámbito de las variables
de la línea en la que se realiza la llamada a eval.
Todas las variables disponibles en esa línea serán accesibles en lectura y
modificación en el código evaluado.
Sin embargo, todas las funciones y clases definidas se definirán en el espacio de nombres global.
En otras palabras, el compilador considera el código evaluado como si se tratara de
un archivo incluido separado.
La construcción de lenguaje eval es
muy peligrosa ya que permite la ejecución
de código PHP arbitrario. Su uso se desaconseja
encarecidamente. Si se ha verificado cuidadosamente que
no hay otras opciones que utilizarla, se debe prestar una atención
especial a no pasar datos provenientes de un usuario
sin haberlos validado previamente de manera minuciosa.
&reftitle.parameters;
code
Código PHP válido a evaluar.
El código no debe estar rodeado de
etiquetas PHP
de apertura y cierre, es decir, 'echo "Hi!";'
debe ser pasado en lugar de
'<?php echo "Hi!"; >'.
Siempre es posible salir y volver al modo PHP
utilizando las etiquetas PHP apropiadas, es decir,
'echo "En modo PHP !"; ?>En modo HTML !<?php echo "Retorno al modo PHP !";'.
Además de esto, el código PHP pasado debe ser válido. Esto incluye que todas las
instrucciones deben terminar con un punto y coma.
'echo "Hi!"' por ejemplo resultará en un error fatal, mientras que
'echo "Hi!";' funcionará.
Una instrucción return terminará inmediatamente la evaluación del código.
El código se ejecutará en el ámbito del código que llama a la función
eval. Por lo tanto, todas las variables definidas o modificadas
en la llamada a la función eval seguirán siendo visibles después
de la finalización de la ejecución de la función.
&reftitle.returnvalues;
eval devuelve &null; a menos que
return sea llamado en el código evaluado,
en cuyo caso el valor pasado a return
es devuelto. A partir de PHP 7, si hay un error de sintaxis en
el código evaluado, eval lanza una excepción ParseError.
Antes de PHP 7, en este caso eval devuelve &false;
y la ejecución del código siguiente continúa normalmente. No
es posible capturar el error de análisis de la
función eval utilizando la función
set_error_handler.
&reftitle.examples;
Ejemplo con eval - concatenación de texto
';
echo $str;
eval( "\$str = \"$str\";" );
echo $str;
?>
]]>
&example.outputs;
&reftitle.notes;
¬e.language-construct;
&tip.ob-capture;
En caso de un error fatal en el código evaluado, todo el script se
terminará.
&reftitle.seealso;
call_user_func