Este es mi problema, resulta que con eval estoy evaluando una cadena que contiene operadores logicos unos y ceros. De este tipo.
Código:
En este ejemplo la funcion me regresaria 1 o true.$cadena="(1&&0)||(0||1)"; eval('return '.$cadena.';');
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:
Peeeeeero el manejo de excepciones no funciona con eval. por su tiempo de ejecucion.try{ $cadena="(1&&0)||(0||1)"; eval('return '.$cadena.';'); } catch (Exception $e) { return("error"); }
Asi que no se como puedo cachar y diferenciar lo que me regresa.
Espero me haya dado a entender.
Muchas gracias