Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2007, 12:44
eldeivid
 
Fecha de Ingreso: noviembre-2004
Mensajes: 14
Antigüedad: 20 años, 3 meses
Puntos: 0
eval() Exeption. Cachar el error.

Hola, despues de bastante tiempo de no andar por aqui, regreso desesperado...

Este es mi problema, resulta que con eval estoy evaluando una cadena que contiene operadores logicos unos y ceros. De este tipo.

Código:
$cadena="(1&&0)||(0||1)"; 
eval('return '.$cadena.';');
En este ejemplo la funcion me regresaria 1 o true.
Esto funciona sin problemas, el GRAN problema es que cuando la cadena esta "malformada" regresa false y cuando la condicion es falsa tambien regresa false.

Entonces no puedo distinguir cuando esta malformada y cuando en realidad no cumple con la condición.

Para mi es muy importante hacer esa distinción.
Intente poner una excepción.

Código:
try{
   $cadena="(1&&0)||(0||1)"; 
   eval('return '.$cadena.';');
}
catch (Exception $e) {
   return("error");
}
Peeeeeero el manejo de excepciones no funciona con eval. por su tiempo de ejecucion.

Asi que no se como puedo cachar y diferenciar lo que me regresa.
Espero me haya dado a entender.

Muchas gracias