Foros del Web » Programando para Internet » PHP »

PHP función eval( ) no funciona correctamente

Estas en el tema de PHP función eval( ) no funciona correctamente en el foro de PHP en Foros del Web. Buenas a todos y gracias por leer, Estoy ejecutando el siguiente código PHP que me devuelve resultados distintos en dos sistemas distintos: if (!eval(Clase::metodo('parámetro'))) return; ...
  #1 (permalink)  
Antiguo 28/04/2014, 07:59
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
PHP función eval( ) no funciona correctamente

Buenas a todos y gracias por leer,

Estoy ejecutando el siguiente código PHP que me devuelve resultados distintos en dos sistemas distintos:

if (!eval(Clase::metodo('parámetro'))) return;

en el sistema A que se que es donde falla, el var_dump() de ese eval() me devuelve true mientras que en el sistema B que es donde está funcionando correctamente me devuelve false.

En el sistema A tengo PHP versión 5.3.2-1ubuntu4.24 mientras que en el sistema B tengo instalado 5.3.10-1ubuntu3.11.

Lo único que se me ocurre es que la función eval() de estas versiones de PHP sea diferente en algo pero no logro encontrar en qué.

¿Alguien tiene idea de la diferencia o de lo que podría estar fallando?

Muchas gracias y un saludo
  #2 (permalink)  
Antiguo 28/04/2014, 09:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: PHP función eval( ) no funciona correctamente

Código PHP:
Ver original
  1. <?php
  2.  
  3. Class Foo
  4. {
  5.     public static function bar($param)
  6.     {
  7.         print "Hola Mundo!";       
  8.     }
  9. }
  10.  
  11. var_dump(eval("Foo::bar('parámetro');"));  // imprime y luego me devuelve NULL
  12. var_dump(eval("Foo::bara('parámetro');"));  // PHP fatal error ...

Ahi tienes en mi interprete...... uso PHP 5.4.x ... pero podrias colocar el eval() dentro de un bloque TRY...CATCH
__________________
Salu2!
  #3 (permalink)  
Antiguo 28/04/2014, 10:06
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: PHP función eval( ) no funciona correctamente

Hola Italico76 y gracias por responder. Me sigue funcionando distinto en ambos ordenadores, voy a probar lo que sugieres del try catch que no lo había pensado antes.

Un saludo!
  #4 (permalink)  
Antiguo 28/04/2014, 10:34
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: PHP función eval( ) no funciona correctamente

Sobre lo que decia del Try...Catch ... los Fatal errors no son capturables despues de todo.... tocaria algo asi en realidad usar: register_shutdown_function()
__________________
Salu2!

Última edición por Italico76; 28/04/2014 a las 11:34
  #5 (permalink)  
Antiguo 28/04/2014, 13:42
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: PHP función eval( ) no funciona correctamente

Cual es la razón para usar eval?
igual puedes usar call_user_func: http://www.php.net/manual/en/functio...-user-func.php o reflection: http://www.php.net/manual/en/reflect...hod.invoke.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: correctamente, eval
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:55.