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